1、map()定义和用法:
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
map() 方法按照原始数组元素顺序依次处理元素。
注意: map() 不会对空数组进行检测。
注意: map() 不会改变原始数组。
that.checkOrderList = that.orders.map(res => {
return res.wxId;
});
map()对数组进行了处理,把处理后的数组赋值给新的数组,这里是只要了返回值的Id给新数组,不要其他字段。
也可以更加复杂处理,比如:
that.studentsList = res.map(item => {
return {
name: item.name,
sex: item.sex === 1? '男':item.sex === 0?'女':'保密',
age: item.age,
avatar: item.img
}
});
that.studentsList = res.map(item => {
name: item.name,
sex: item.sex === 1? '男':item.sex === 0?'女':'保密',
age: item.age,
avatar: item.img
});
两段代码是一样的,可以省略掉return。
2、findIndex()方法的定义和用法:
findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置。
findIndex() 方法为数组中的每个元素都调用一次函数执行:
当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。
如果没有符合条件的元素返回 -1
注意: findIndex() 对于空数组,函数是不会执行的。
注意: findIndex() 并没有改变数组的原始值。
特别注意的是,返回的是元素的索引,不是返回了元素。最终处理可以回调一个方法,或者拿到索引后拿着索引处理。
let index = that.orders.findIndex(item =>{
if(item.id==that.tempOrderId){
return true
}
})
that.orders.splice(index,1)
//that.tempOrderId为传入的条件id,这段代码是显示已付款商品的页面中的代码,可以选中一个订单,点击发货后,把此订单在这个页面中的显示剔除。
这段代码还可以改为回调:
function checkOrder(order) {
return order.it == that.tempOrderId;
}
//that.tempOrderId为传入的条件id
let index = this.orders.findIndex(checkOrder);
that.orders.splice(index, 1);
3、some()方法用法和定义:
some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
some() 方法会依次执行数组的每个元素: 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。 如果没有满足条件的元素,则返回false。
注意: some() 不会对空数组进行检测。
注意: some() 不会改变原始数组。
that.orders.some((item, i) => {
if (item.wxId == that.tempOrderId) {
that.orders.splice(i, 1);
console.log(item.wxId);
return true;
}
});
同样也是可以使用回调的,可以跟findIndex()方法做比较对应,他们不同点是findIndex是去找到index,而some是找到了在内部就处理。
4、过滤指定条件的数据:
this.shopInfos=response.list.filter((item,index)=>{
return item.special=='1'
})