(四)js数组方法一
- 对数组元素进行过滤
- 三个参数:元素值,下标,原数组
- 返回:过滤后符合条件的数组,不会改变原数组
let arr = [2,4,6,7,8];
let res = arr.filter(function(item,index,array) {
return (item > 3);
})
console.log(res);//6,7,8 var arr10=[1,2,3,4,5,6,7,8,9,10];
arr10.filter(function(item,index){ //[2,4]
return item%2==0 && index<5;
});
console.log(arr10); //[1,2,3,4,5,6,7,8,9,10]
- 查找数组元素
- 两个参数:需要查找的元素,从那开始的下标
- 返回:若找到则返回找到元素的下标,若找不到则返回-1,不会改变原数组
<script type="text/javascript">
var str="Hello world!"
document.write(str.indexOf("Hello") + "<br />");//0
document.write(str.indexOf("World") + "<br />");//-1
document.write(str.indexOf("world"));//0 var arr13=[1,2,3,2,1];
arr13.indexOf(1,-1); //查找1,且从-1的位置开始从左到右开始找,那么应该就是最后一个元素,即4
arr13.indexOf(2,-1); //查找2,且从-1的位置开始从左到右开始找,那么则没有,返回-1
//lastIndexOf() //跟indexOf()方法一样,只是这是从右到左开始找元素索引值.
// 注意这里的索引值都是不变的,不可能从右到左,那索引值也从右到左开始数, arr13的索引值一直都是0,1,2,3,4
arr13.lastIndexOf(2,-2) //查找2,从-2开始找,返回3
</script>
- 将数组转化为字符串,并且以某个分隔符进行连接,默认是使用的逗号“ , ”
- 参数:拼接的字符串
- 返回:拼接后的字符串,不会改变原数组
var arr1=[1,2,3];
console.log(arr1.join('_'));
function repeatArray(str,n){
console.log(new Array(n+1).join(str));}
repeatArray('a',3); //aaa
repeatArray('Hi',5); //HiHiHiHiHi
- 将数组中的元素顺序颠倒。注意:这个方法会改变原数组的。
- 参数:无
- 返回:被打乱顺序后的原数组,会改变原数组
var arr2=[1,2,3];
arr2.reverse();
console.log(arr2); //这时候arr2调用完reverse方法后,就已经改变了arr2数组了,即原数组被修改
- 默认是已字母的顺序进行排序, 如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。
- 参数:一般为一个函数
- 返回:数组的引用,会改变原数组
var arr3=["a","d","c","b"];
arr3.sort();
console.log(arr3); //返回["a","b","c","d"]
var arr4=[13,5,24,41,3];
arr4.sort(); //[13,,24,3,5,41]不是我们想要的结果
arr4.sort(function(a,b){
return a-b; //因为减号这个操作符,默认是可以将字符串转化为number类型的
});
var arr5=[{age:25},{age:3},{age:6}];
arr5.sort(); //排序无效,仍然是按照字母顺序进行排序的
arr5.sort(function(a,b){ //按照数字大小进行排序了
return a.age- b.age;
});
- 合并数组
- 参数: 数组
- 返回:合并后的新的数组,不会改变原数组
var arr6=[1,2,3];
console.log(arr6.concat([4,6,7])); //[1,2,3,4,6,7]
console.log(arr6.concat([11,12],13)); //[1,2,3,11,12,13]
console.log(arr6.concat([11,[12,13]])); //[1,2,3,11,[12,13]];
- 裁剪数组
- 参数:两个参数,起始点的下标,结束位置的下标
- 返回:裁剪后的数组,不会改变原数组
var arr7=[1,2,3,4,5];
arr7.slice(1,3); //返回[2,3]
arr7.slice(1); //[2,3,4,5] 如果只有一个参数的话,就表示开始位置索引到数组末尾所有元素
arr7.slice(1,-1); //[2,3,4] -1表示数组的最后一个元素,根据左闭右开原则
arr7.slice(-4,-3); //[2] -1表示数组的最后一个元素,-2就是倒数第二个,以此类推
- splice() 数组拼接,删除从某个索引值开始的几个元素后,再重新拼接成数组。
- 参数:两个,起始点下标,拼接的数量
- 返回:拼接后的数组,会改变原数组
var arr8=[1,2,3,4,5];
//arr8.splice(2); //[1,2] 删除从索引值2开始往后的所有元素3,4,5之后,拼接的数组为[1,2]
//arr8.splice(2,2); //[1,2,5]; 删除从索引值2开始往后的两个元素3,4之后,拼接的数组是[1,2,5]
arr8.splice(1,1,"a","b"); //[1,"a","b",3,4,5] 删除索引值1开始的一个元素2,然后在这个位置添加两个元素:"a","b"
- 数组的便利 forEach(function(item,index,array){}) 数组中循环遍历方法的一种,还有for in; item表示元素本身,index是索引值
- 参数:函数(三个形参),item元素本身,index为下标,array为原数组
- 返回:便利后的每个数组元素,不会改变原数组
var arr = [12,14,15,17];
arr.forEach( function(item,index,array) {
console.log(item);//12,14,15,17
console.log(index);//0,1,2,3
console.log(array);//[12,14,15,17]
})
- 数组中循环遍历方法
- 参数:函数(item)item为便利后的数组的每个元素
- 返回:便利后的数组的每个元素,不会改变原数组
- 判断数组中的元素是否满足条件,只要有一个满足条件就返回true
- 参数:函数(item)每个元素
- 返回:true/false,只要有一个满足就返回true,不会改变原数组
arr: function () {
var array = [1,2,3,4,5];
array.some(function (item) {
var a = item< 4? item: "false"
console.log(a);//1,2,3,false
})
}
- 判断数组中的每一个元素是不是都满足一个条件
- 参数:函数(item)每个元素
- 返回:true/false,都满足为true,有一个不满足都为false,不会改变原数组
var arr11=[1,2,3,4,5];
arr11.every(function(item){ //false 不是每个元素都符合条件
return item>4
});
- 每两个两个一起进行判断,得到的值作为新的x值.m参数指定为m为第一个x,(m可以省略)从左到右依次.
- 参数:函数(x,y)
- 返回:比较后的元素,不会改变原数组
var arr12=[3,6,9];
arr12.reduce(function(x,y){
return x>y?x:y;
})
//reduceRight(function(x,y){}); //方法和reduce一样,只是这次是从右向左开始依次进行判断取值.
- 删除数组的第一个元素
- 参数:无
- 返回:返回被删除的元素,如果数组为空则返回undefined,会改变原数组
arr: function () {
var array = [1,2,3,4,5];
console.log(array.shift());//1
console.log(array);//[2,3,4,5]
}
- 在数组开头添加元素
- 参数:添加的元素,可为多个
- 返回:返回新的数组的长度,会改变原数组
arr: function () {
var array = [1,2,3,4,5];
console.log(array.unshift(0,2));//数组长度7
console.log(array);//[0,2,1,2,3,4,5]
}
- 删除数组的最后一个元素
- 参数:无
- 返回:被删除的元素,会改变原数组
arr: function () {
var array = [1,2,3,4,5];
console.log(array.pop());//被删除元素5
console.log(array);//[1,2,3,4]
}
- 向数组末尾添加元素
- 参数:无
- 返回:新的数组长度,会改变原数组
arr: function () {
var array = [1,2,3,4,5];
console.log(array.push(6,7));//数组长度7
console.log(array);//[1,2,3,4,5,6,7]
}
(四)js数组方法一的更多相关文章
- js数组方法全
js数组方法大全 一:前言 转载 作者:九夏 出处:https://www.cnblogs.com/jiuxia/ 我们在学到js中数组的时候,我们会接触到js中数组 ...
- JavaScript进阶(四)js字符串转换成数字的三种方法
js字符串转换成数字的三种方法 在js读取文本框或者其它表单数据的时候获得的值是字符串类型的,例如两个文本框a和b,如果获得a的value值为11,b的value值为9 ,那么a.value要小于b. ...
- 四 js Math数学简单使用
//Math是全局的 //Math.PI 数学里的3.1415926.... console.log(Math.PI); //取随机数 //js提供的随机函数 Math.random() --> ...
- JavaScript (四) js的基本语法 - - 函数练习、arguments、函数定义、作用域、预解析
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.函数练习 1.求最值 // - 求2个数中的最大值 function getMax(num1, nu ...
- 网站开发进阶(十四)JS实现二维码生成
JS实现二维码生成 绪 项目开发原语:已然花费半天的时间,仍旧未能将二维码显示在订单中.但是可以在单个页面中显示二维码,结合到angularjs的控制器中就失效了,自己是真的找不到其中的原因了.费解! ...
- 四.js 正则表达式
一.正则表达式 1.定义:对字符串规则的描述 2.作用:可以检查字符串是否符合规则,可以按规则来截取字符串 3.定义: a.简单模式:var reg = /hello/; b.复杂模式:var reg ...
- js数组歌
判断是不是数组,isArray最靠谱. 按照条件来判断,every/some给答案 是否包含此元素,includes最快速. find/findIndex很相似,按条件给第一个值. indexOf/l ...
- 电力项目十四--js添加highslider特效
当页面的一个table表格无法显示所有的内容的时候,点击[查看详细信息],显示详细内容: 下载css,js 1.在actingIndex.jsp中添加:引入js和css: <LINK href= ...
- prototype数组方法的实现
数组插入元素push Array.prototype.push=function(){ for(var i=0;i<arguments.length;i++){ this[this.length ...
随机推荐
- PHP 多字节字符串 函数
参考资料 多字节字符编码方案和他们相关的问题相当复杂,超越了本文档的范围. 关于这些话题的更多信息请参考以下 URL 和其他资源. Unicode materials » http://www.uni ...
- kmp模板 && 扩展kmp模板
kmp模板: #include <bits/stdc++.h> #define PB push_back #define MP make_pair using namespace std; ...
- MongoDB win32-bit 安装
一念起: 由于本人 用的电脑比较老旧,所以一直用的 是win7 32bit 的操作系统,但是在学习MongoDB的时候 遇到了起步的第一个问题,按照目前 官网最新版MongoDB 3.4.3,已不支持 ...
- 利用基准电压效正Vcc做参考电压的ADC采样计算方法
利用基准电压效正Vcc做参考电压的ADC采样计算方法
- 【Java】仿真qq尝试:用户注册(三)
需求: 实现用户名和密码存入数据库. 思路: 1.连接数据表用静态加载块 2.crud写成4个静态方法 具体流程: from:https://www.tutorialspoint.com/jdbc/j ...
- Keepalived + Mysql 主主复制高可用
环境 系统:Centos 7.4 x64 服务:Mariadb 5.5 .Keepalived 1.3.5.6 结构 主1:192.168.1.108 主2:192.168.1.109 VIP:19 ...
- React Native混合开发中必须要学会点FlexBox布局
在前面的案例中,界面的搭建都是采用CSS的布局,基于盒子模型,依赖 display属性 , position属性, float属性.但对于那些特殊布局非常不方便,比如,垂直居中. 一种全新的针对web ...
- React之JSX语法
1. JSX的介绍 JSX(JavaScript XML)——一种在React组件内部构建标签的类XML语法.react在不使用JSX的情况下一样可以工作,然而使用JSX可以提高组件的可读性,因此 ...
- 华为S5700系列交换机配置通过Telnet登录设备
声明:不管什么服务,都需要交换机开启服务,创建对应权限的用户,在通道下允许协议通过,缺一不可,以telnet为例. 组网图形 图1 配置通过Telnet登录设备组网图 组网需求 如图一所示,PC与设备 ...
- 详细解读ARM寄存器之CPSR【转】
本文转载自:https://blog.csdn.net/david_luyang/article/details/6276533 详细解读ARM寄存器之CPSR 整理人:卢阳 QQ:820927872 ...