不要依赖在函数内给传进来的数组赋值
var arr = [ { id: '1'}, { id: '2' } ]
this._transform(this.createUserIds, arr)
function _transform(data, list) {
data = list.map(e => e.id) // 这样直接给形参赋值,改变不了this.createUserIds
}
forEach/map改变原数组?
// list会改变
list = list.map(item =>
Object.assign({}, item, { dynamicValue: item.paramValue ? false : true })
)
// list不会改变,他只是操作item的副本
list.forEach(item => {
item = Object.assign({}, item, { dynamicValue: item.paramValue ? false : true })
console.log(item)
})
Array.some( )和Array.every( )
Array.some( )
检测数组里,是否存在一项为“符合回调函数”的。
(第一项符合,则不检查后面的,直接返回true了)
arr.some(item => item.selected)
// 这个是用来检查arr是否存在那么一项——他的selected属性是true的
Array.every( )
检测数组里,是否存在 每 一项为“符合回调函数”的。
(必须每一项都符合!若第一项不符合,就直接返回true了)
arr.every(item => item.selected)
// 这个是用来检查arr是否存在所有项——他们的selected属性都是true的