改变原始数组,过滤掉指定的值。
使用 Array.filter()
和 Array.includes()
来剔除指定的值。使用 Array.length = 0
将数组中的长度重置为零,并且通过 Array.push()
只使用 pulled 值重新填充数组。
(对于不改变原始数组的代码片段,请参阅without
)
const pull = (arr, ...args) => { let argState = Array.isArray(args[0]) ? args[0] : args; let pulled = arr.filter((v, i) => !argState.includes(v)); arr.length = 0; pulled.forEach(v => arr.push(v)); };
let myArray1 = ['a', 'b', 'c', 'a', 'b', 'c']; pull(myArray1, 'a', 'c'); console.log(myArray1); // [ 'b', 'b' ] let myArray2 = ['a', 'b', 'c', 'a', 'b', 'c']; pull(myArray2, ['a', 'c']); console.log(myArray2); // [ 'b', 'b' ]
更多代码 JavaScript 实用代码片段 请查看 https://www.7psus5.com/30-seconds-of-code/
最新评论
写的挺好的
有没有兴趣翻译 impatient js? https://exploringjs.com/impatient-js/index.html
Flexbox playground is so great!
感谢总结。
awesome!
这个好像很早就看到类似的文章了
比其他的教程好太多了
柯理化讲的好模糊…没懂