查找数组中指定元素

定义一个对象数组

find()方法为数组中的每个元素都调用一次函数执行,

当数组中的元素在测试条件时返回true,find()返回符合条件的元素,之后的值不会再执行函数。

如果没有符合条件的元素则返回undefined。

var ar = arr.find(function(elem){

return elem.age>2;

});

console.log(ar);//{id:3, name:'王五', age:3}

console.log(arr);


返回一个对象

filter():创建一个新数组,新数组中的元素是通过检查指定数组中符合条件的所有元素

var arr = [1,2,3,4,5,6,7];

var ar = arr.filter(function(elem){

return elem>5;

});

console.log(ar);//[6,7]

console.log(arr);//[1,2,3,4,5,6,7]

返回一个数组

array.map(function(value, index, arr),thisValue)

value:必须,代表当前元素,其他四个参数都是可选,index代表当前索引值,arr代表当前的数组,thisValue代表传递给函数的值,一般用this值,如果这个参数为空,undefined会传递给this值

返回值:返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值

var arr = [1,2,3,4,5,6,7];

var ar = arr.map(function(elem){

return elem*4;

});

console.log(ar);//[4, 8, 12, 16, 20, 24, 28]

console.log(arr);//[1,2,3,4,5,6,7]


有返回值



return可以跳过 map 循环,不能跳出map

array.forEach(function(value, index, arr),thisValue)

forEach():用于调用数组每个元素,并将元素传递给回调函数(注意没有办法跳出或终止forEach语句,除非抛出异常)

value:必须,代表当前元素,其他四个参数都是可选,index代表当前索引值,arr代表当前的数组,thisValue代表传递给函数的值,一般用this值,如果这个参数为空,undefined会传递给this值

返回值:undefined

var arr = [1,2,3,4,5,6,7];

var sum = 0;

var ar = arr.forEach(function(elem){

sum+=elem*4;

});

console.log(ar);//undefined

console.log(arr);//[1,2,3,4,5,6,7]

console.log(sum);//112



retrun可以跳过forEach,不能跳出

for in 不建议使用

for(let index in arr) {

console.log(index)

console.log(arr[index])

        arr[index].age=arr[index].age+10

  };

    console.log(arr);


for(let ar of arr) {

console.log(ar)

        ar.age=ar.age+10

  };

    console.log(arr)


find()方法主要用来返回数组中符合条件的第一个元素(没有的话,返回undefined)

filter()方法主要用来筛选数组中符合条件的所有元素,并且放在一个新数组中,如果没有,返回一个空数组


map()方法主要用来对数组中的元素调用函数进行处理,并且把处理结果放在一个新数组中返回(如果没有返回值,新数组中的每一个元素都为undefined)

forEach()方法也是用于对数组中的每一个元素执行一次回调函数,但它没有返回值(或者说它的返回值为undefined,即便我们在回调函数中写了return语句,返回值依然为undefined)

for in 和for of 不建议用

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容