Javascript Map和splice提供空值,而不是空值
我有一个算法:Javascript Map和splice提供空值,而不是空值,javascript,Javascript,我有一个算法: 让someArray=[1,2,3,4,5] 让mapped=someArray.map(number=>{ 设index=someArray.indexOf(5) 如果(索引!=-1){ someArray.splice(索引,1) } 控制台日志(编号类型) 返回号码 }) console.log(映射) console.log(mapped.length) console.log(Object.keys(mapped.length)请参见: map为数组中的每个元素按顺序
让someArray=[1,2,3,4,5]
让mapped=someArray.map(number=>{
设index=someArray.indexOf(5)
如果(索引!=-1){
someArray.splice(索引,1)
}
控制台日志(编号类型)
返回号码
})
console.log(映射)
console.log(mapped.length)
console.log(Object.keys(mapped.length)
请参见:
map为数组中的每个元素按顺序调用一次提供的回调函数,并根据结果构造一个新数组。回调仅对具有赋值(包括未定义)的数组索引调用。对于数组中缺少的元素(即从未设置、已删除或从未赋值的索引),不会调用它
如果数组的现有元素发生更改,则传递给回调的值将是映射访问它们时的值。在调用映射开始之后和被访问之前删除的元素不会被访问
在对数组进行迭代时对其进行变异,这意味着一旦达到索引[4],该元素(其值以前为5)就不再存在,这意味着该函数在该迭代中不会被调用,从而导致
。生成的数组由5个元素创建,但不会对最后一个元素调用回调
改用过滤器