•find();
let arr = [1, 2, 3, 4, 5]
arr.find(function(x, i, a){
if(x < 2) {console.log(x, i, a); };
};
//输出 1, 0, [1, 2, 3, 4, 5]
find() 的参数是一个函数,函数有三个参数,分别是 值、索引、数组。
•includs()
let arr = [1, 2, 3, 4, 5];
arr.includs(2, 3);
//返回false
includs()接收两个参数,第一个参数为查询的值,第二个为查询的起始位置。
•keys value
let arr = [1, 2, 3, 4, 5];
for(let a of arr.keys()){
console.log(a);
};
//输出:0 1 2 3 4
遍历了数组的索引,其实就是key就是找到数组的索引值,觉得没什么用,不如上面的find() find还有个findindex(),当传入一个参数的时候返回的就是索引值,这个还要借用for of
value与上面的用法一样,只是返回的是数组的值。
•fill()
let arr=['w','b'];
arr.fill('i')//结果:['i','i'],改变原数组
arr.fill('o',1)//结果:['i','o']改变原数组,第二个参数表示填充起始位置
new Array(3).fill('k').fill('r',1,2)//结果:['k','r','k'],第三个数组表示填充的结束位置
•array.of()
arrayof( 参数 )返回的还是一个数组,与参数的类型无,与参数的数量有关,数量为0返回空数组。
其中Array.of() 与 Array() 构造函数之间的差别就是:
一个返回数组7,一个返回7个空值的数组。
Array.of(7) //[7]
Array(7) //[,,,,,,]
•copyWithin()
["w", "i", "r"].copyWithin(0)//此时数组不变
["w", "i", "r"].copyWithin(1)//["w", "w", "i"],数组从位置1开始被原数组覆盖,只有1之前的项0保持不变
["w", "i", "r","b"].copyWithin(1,2)//["w", "r", "b", "b"],索引2到最后的r,b两项分别替换到原数组1开始的各项,当数量不够,变终止
["w", "i", "r",'b'].copyWithin(1,2,3)//["w", "r", "r", "b"],强第1项的i替换为第2项的r
copyWithin方法接收三个参数,被替换数据的开始处、替换块的开始处、替换块的结束处。
•Array.from()
Array.from({'0':'w','1':'b',length:2})//["w", "b"],返回数组的长度取决于对象中的length,故此项必须有!
Array.from({'0':'w','1':'b',length:4})//["w", "b", undefined, undefined],数组后2项没有属性去赋值,故undefined
Array.from({'0':'w','1':'b',length:1})//["w"],length小于key的数目,按序添加数组
Array.from([1,2,3],function(x){
return x+1})//[2, 3, 4],第二个参数为回调函数
Array.from()可以将类数组转换为数组,也可以将字符串一类可遍历对象转换为数组,接收两个参数,一个是转换对象,一个是回调函数。
map
var data = [1, 2, 3, 4];
var arrayOfSquares = data.map(function (item) {
return item * item;
});
alert(arrayOfSquares); // 1, 4, 9, 16
参数为一个函数,函数的参数为数组的各个值。
some every
var arr = [, , , , ];
arr.some(筛选条件){};
some是有一个符合条件的就成立,
every是所有都符合条件才成立。