javascript - javascript如何使用 Lodash.js 除去 array 项?

  显示原文与译文双语对照的内容
148 0

当我尝试删除 array 中的第一个 5项时,array 项跨越 10.当 array 继续添加setInterval方法中的项目时。

function checkArray(array,limit,toshow){
 var length = array.length;
 if(length> limit){
 var splicedArry = _.drop(array1,toshow);
 array = splicedArry;
 }
 return array;
}

请检查

时间:原作者:0个回答

97 0

下面是你的JSfiddle的全部工作代码:

var arrayEl = [];
var count =0;
setInterval(function(){
 count = ++count;
 arrayEl.push(count);
},1000)
setInterval(function() {
//modify array by reference
 checkArray(arrayEl,10,5)
//print the contents of modified array
 console.log(arrayEl)
}, 1100)
function checkArray(array,limit,toshow){
//splice takes 2 arguments to modify an array (people often confuse it with `slice`
 if (array.length> limit) array.splice(0, toshow);
}
原作者:
67 2

你可以使用 vanilla:

let checkArray = (array, limit, toShow) => {
 if (array.length> limit) array.splice(toShow);
}
原作者:
84 2

使用javascript方法来代替 lodash _.drop() 方法,更好地使用 javascript,它接受从remove删除的索引和要删除的条目数目。

因此在你的函数中,你将这样调用它:

array.splice(0, toshow)

因此它删除 array 中的第一个 toshow 元素,其中 toshow 是要删除的项的数量。

这就是你的功能:

function checkArray(array, limit, toshow) {
 if (array.length> limit) {
 array.splice(0, toshow);
 }
 return array;
}

演示:

这是用正确的函数更新的代码:

var arrayEl = [];
var count = 0;
setInterval(function() {
 count = ++count;
 arrayEl.push(count);
}, 1000)
setInterval(function() {
 console.log(checkArray(arrayEl, 10, 5))
}, 1100);
function checkArray(array, limit, toshow) {
 if (array.length> limit) {
 array.splice(0, toshow);
 }
 return array;
}
原作者:
...