【vue】vue+ES6处理数组:shift、unshift、map、filter、foreach、every、some、reduce、find、findIndex等方法
map()test(){let arr=[0,1,2,3,4];arr.map((val, idx) => {console.log(val+','+idx);})},each()foreach()reduce()filter()test(){let arr=[0,1,2,3,4];let result = arr.filter(one => one>2);
shift()
删除原数组第一项,并返回删除元素的值,如果数组为空则返回undefined。该方法会改变原来的数组,而不会创建新的数组。
console.info(array);
console.info(nullarray);
console.info(array.shift());//返回删除元素的值
console.info(nullarray.shift());//空数组返回undefined
console.info(array);//数组变化了
unshift()
将参数添加到原数组开头,并返回数组的长度。该方法会改变原来的数组,而不会创建新的数组。
console.info(array);
console.info(array.unshift(-1,0));//向数组开头插入-1、0,返回插入后数组长度。
console.info(array);
map()方法:全部循环,不改变原数组,会生成新的数组。
test(){
let arr=[0,1,2,3,4];
let afterArr = arr.map(val => val+2)
console.log(arr);//[0, 1, 2, 3, 4]
console.log(afterArr);//[2, 3, 4, 5, 6]
},
foreach():全部循环,可以重新给原数组赋值
test(){
let arr=[0,1,2,3,4];
let afterArr = arr.forEach((val, idx) => arr[idx]=val+2)
console.log(arr);//[2, 3, 4, 5, 6]
console.log(afterArr);//undefined
},
filter():过滤出满足条件的部分数据,不会改变原数组,会生成新的数组
test(){
let arr=[0,1,2,3,4];
let result = arr.filter(one => one>2);
console.log(result); //[3,4]
},
every():若目标数组中每一个对象都符合条件则返回true,否则返回false
some():若目标数组中某一个对象符合条件则返回true,否则返回false
test(){
let arr=[0,1,2,3,4];
let every_result = arr.every(one => one>2);
let some_result = arr.some(one => one>2);
console.log(every_result); //false
console.log(some_result);//true
},
reduce():常用于叠加、数组扁平化等,它接收一个回调函数作为累加器(accumulator),对该数组的所有元素(从左到右)执行操作,最后将计算结果累积为单一输出值。
arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])
callback:必需,是一个函数,它接受四个参数:
accumulator(累计器):累计回调的返回值,也是上一次调用回调时返回的值,或者是 initialValue。
currentValue(当前值):数组中当前正在处理的元素。
index(可选):当前元素在数组中的索引(从0开始或从initialValue指定的位置开始)。
array(可选):调用 reduce 方法的原数组。
initialValue(可选):传递给 reduce 的初始值。如果不提供此值,那么 reduce 会从数组的第二个元素开始执行,并使用第一个元素作为 accumulator 的初始值。
test() {
let arr = [0, 1, 2, 3, 4];
var sumValue = arr.reduce(function (sum, number) {
//第一个参数为叠加总值,需要初始化,第二个参数是当前项
return sum + number;
}, 0); //sum的初始化
console.log(sumValue); //10
},
find():在数组中找到符合要求的对象 和filter的区别就是找到符合要求的对象就停止寻找了,返回的是一个对象,而filter返回的是所有符合要求的对象组成的新数组
test() {
let arr = [0, 1, 2, 3, 4];
var big = arr.find(val => val>2);
console.log(big); //3
},
findIndex():findIndex返回第一个符合条件的索引号
test1() {
let arr = [1, 1, 2, 0, 4];
var big = arr.findIndex(val => val>2);
console.log(big); //下标为4
},
更多推荐
所有评论(0)