Javascript 如何使用Lodash.js删除数组项?
当数组项超过10时,我试图删除数组中的前5项。因为我的数组一直在setInterval方法中添加项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
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