在nodejs中,要删除数组(array )的子集元素,可以使用 pop、shift、splice 等方法弹出元素达到删除的效果。
这种方法,数组的长度同时也会发生变化。
另一种方法是使用 delete 方法 删除数组的元素,但这种方法,数组的长度不变,被删除的位置会留下一个空对象填充。
虽然这不影响 数组 forEach 遍历方法,但是在使用 for(var i=0;i<array.length;i++){} 循环的时候,会出错。
var a = [{v:'111'},{v:'222'},{v:'333'},{v:'444'}]
a.shift();
delete a[1];
a.forEach(o=>{
console.log(o.v)
})
console.log('=========')
for(var i=0;i<a.length;i++){
console.log(a[i].v)
}
输出:
222
444
=========
222
\test.js:10
console.log(a[i].v)
^
TypeError: Cannot read properties of undefined (reading 'v')
at Object.<anonymous> (D:\Spooking\Documents\@KaiFa\@Projects\FastEDU\FastEdu_ETC\platform\base\smartedu.cn\test.js:10:19)
at Module._compile (node:internal/modules/cjs/loader:1198:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1252:10)
at Module.load (node:internal/modules/cjs/loader:1076:32)
at Function.Module._load (node:internal/modules/cjs/loader:911:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:22:47
本站文章除注明转载/出处外,均为博主 spooking 原创或翻译,转载前请务必署名。