Javascript 如何使用Lodash.js删除数组项?

Javascript 如何使用Lodash.js删除数组项?,javascript,arrays,lodash,Javascript,Arrays,Lodash,当数组项超过10时,我试图删除数组中的前5项。因为我的数组一直在setInterval方法中添加项 function checkArray(array,limit,toshow){ var length = array.length; if(length > limit){ var splicedArry = _.drop(array1,toshow); array = splicedArry; } return arr

当数组项超过10时,我试图删除数组中的前5项。因为我的数组一直在setInterval方法中添加项

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

请检查您可以使用的香草js:

let checkArray = (array, limit, toShow) => {
  if (array.length > limit) array.splice(toShow);
}

您可以使用vanilla js:

let checkArray = (array, limit, toShow) => {
  if (array.length > limit) array.splice(toShow);
}

以下是JSFIDLE(使用Vanilla JS)的完整工作代码:


Lodash
\uDrop
创建一个新数组,因此整个代码如下所示:

var arrayEl = [];
var count =0;

setInterval(function(){
  count = ++count;
  arrayEl.push(count);


},1000)

setInterval(function() {
  // you must assign the returned value to your original array
  arrayEl = checkArray(arrayEl,10,5)
  console.log(arrayEl)
}, 1100)


function checkArray(array,limit,toshow){
  if (array.length > limit) return _.drop(array, toshow);

  return array;
}
array.splice(0, toshow)

以下是JSFIDLE(使用Vanilla JS)的完整工作代码:


Lodash
\uDrop
创建一个新数组,因此整个代码如下所示:

var arrayEl = [];
var count =0;

setInterval(function(){
  count = ++count;
  arrayEl.push(count);


},1000)

setInterval(function() {
  // you must assign the returned value to your original array
  arrayEl = checkArray(arrayEl,10,5)
  console.log(arrayEl)
}, 1100)


function checkArray(array,limit,toshow){
  if (array.length > limit) return _.drop(array, toshow);

  return array;
}
array.splice(0, toshow)

与其使用lodash
\uuz.drop()
方法,不如使用JavaScript的本机,它将要删除的索引和要删除的项目数作为参数

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

var arrayEl = [];
var count =0;

setInterval(function(){
  count = ++count;
  arrayEl.push(count);


},1000)

setInterval(function() {
  // you must assign the returned value to your original array
  arrayEl = checkArray(arrayEl,10,5)
  console.log(arrayEl)
}, 1100)


function checkArray(array,limit,toshow){
  if (array.length > limit) return _.drop(array, toshow);

  return array;
}
array.splice(0, toshow)
因此它从
数组中删除第一个
toshow
元素,其中
toshow
是要删除的项目数

这就是你的职责:

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

这是使用正确功能更新的代码:

function checkArray(array, limit, toshow) {
  if (array.length > limit) {
    array.splice(0, toshow);
  }
  return array;
}
var arrayEl=[];
var计数=0;
setInterval(函数(){
计数=++计数;
arrayEl.push(计数);
}, 1000)
setInterval(函数(){
日志(检查数组(arrayEl,10,5))
}, 1100);
函数检查数组(数组、限制、toshow){
if(array.length>限制){
阵列拼接(0,toshow);
}
返回数组;

}
与其使用lodash
\uu.drop()
方法,不如使用JavaScript的本机,它将要删除的索引和要删除的项目数作为参数

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

var arrayEl = [];
var count =0;

setInterval(function(){
  count = ++count;
  arrayEl.push(count);


},1000)

setInterval(function() {
  // you must assign the returned value to your original array
  arrayEl = checkArray(arrayEl,10,5)
  console.log(arrayEl)
}, 1100)


function checkArray(array,limit,toshow){
  if (array.length > limit) return _.drop(array, toshow);

  return array;
}
array.splice(0, toshow)
因此它从
数组中删除第一个
toshow
元素,其中
toshow
是要删除的项目数

这就是你的职责:

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

这是使用正确功能更新的代码:

function checkArray(array, limit, toshow) {
  if (array.length > limit) {
    array.splice(0, toshow);
  }
  return array;
}
var arrayEl=[];
var计数=0;
setInterval(函数(){
计数=++计数;
arrayEl.push(计数);
}, 1000)
setInterval(函数(){
日志(检查数组(arrayEl,10,5))
}, 1100);
函数检查数组(数组、限制、toshow){
if(array.length>限制){
阵列拼接(0,toshow);
}
返回数组;

}
如果您想坚持使用
lodash
请使用
\uuu0.dropRight
例如

var arr = [1,2,3,4,5,6]

function checkArray(array,limit,toshow){
    var length =  array.length;
    if(length > limit){
        return _.dropRight(array,(length-toshow));

    }else{
        return array;
    }
}
console.log(checkArray(arr,3,3))

如果您想坚持使用
lodash
,请使用
\uu0.dropRight
例如

var arr = [1,2,3,4,5,6]

function checkArray(array,limit,toshow){
    var length =  array.length;
    if(length > limit){
        return _.dropRight(array,(length-toshow));

    }else{
        return array;
    }
}
console.log(checkArray(arr,3,3))


问题出在哪里?
\u0.drop
创建了一个新数组,因此您将项目添加到一个数组中,但随后返回另一个数组。您应该使用返回值或对原始值进行变异。一个简单的问题,例如,当数组长度为您期望的20时?只删除前5个?只保留最后5个?有什么问题吗?
\u0。drop
创建一个新数组,因此您将项目添加到一个数组中,然后返回另一个数组。您应该使用返回值或对原始值进行变异。一个简单的问题,例如,当数组长度为您期望的20时?只删除前5个?保留最后的5个?这会改变数组,考虑使用切片或是。lodash@givehug但这是目标,不是吗?这会改变数组,考虑使用切片或是。lodash@givehug但这就是目标,不是吗?很好,但最好也提供解释,而不仅仅是代码。:)如何使用lodashNice?@fekkyDev添加了使用lodashNice的示例,但最好也提供解释,而不仅仅是代码。:)如何在lodash中操作?@fekkyDev添加了使用lodash的示例为什么使用
\uu0.dropRight
?它的方法与
相同。drop
唯一的区别是它从末尾而不是从开头删除项目。OP明确地希望从一开始就删除,而且,
length toshow
并没有达到OP想要的效果-目的是从数组中删除特定数量的项,使用此数学,删除的项的数量取决于数组的长度。我同意,
toshow
的名称可能不正确,但更改其功能以匹配名称会忽略其初衷。抱歉。。我以为他/她只想显示
显示的元素
为什么要使用
。.dropRight
?它的方法与
相同。drop
唯一的区别是它从末尾而不是从开头删除项目。OP明确地希望从一开始就删除,而且,
length toshow
并没有达到OP想要的效果-目的是从数组中删除特定数量的项,使用此数学,删除的项的数量取决于数组的长度。我同意,
toshow
的名称可能不正确,但更改其功能以匹配名称会忽略其初衷。抱歉。。我以为他/她只想显示
toshow