在JavaScript中从数组中删除项
Remove item from array in JavaScript
经常看到这个问题,但找不到我想要的东西。
onClick
我将一个项目推送到我拥有的数组中,但是,如果我的数组中有3个项目,我就不想再推送项目了。
var selectedData = [];
我设置了空变量。
var index = selectedData.indexOf(3);
然后我得到我的数组的索引,它是3
if (index > 3) {
selectedData.splice(index, 1);
}
然后在我的if statement
中,我说,如果我的索引是3,大于3,那么在index
处拼接并移除一。
selectedData.push(TheThing);
如果上面的if语句不正确,我会将TheThing
推送到我的数组中。
然而,我有一个变量var arrayLength = selectedData.length;
来获取长度,当我控制台记录它时,它从0
开始,并拼接4之后的任何项目。不是3。
知道我做错了什么或误解了什么吗?感谢
我的代码的更完整示例
var selectedData = [];
myElement.on('click', function() {
var index = selectedData.indexOf(3);
if (index > 3) {
selectedData.splice(index, 1);
}
var arrayLength = selectedData.length;
console.log(arrayLength, 'the length');
});
简而言之,onClick
检查我的数组,并删除第三个数组之后添加到我的数组中的任何内容。
您希望它表现为堆栈还是队列?
所以你的代码在这里:
var index = selectedData.indexOf(3);
不是抓取第三个索引,而是抓取它看到3的第一个索引,如果没有,则抓取-1。将if语句替换为
if (selectedData.length > 3) {
selectedData.pop() // removes last element (stack)
// or
selectedData = selectedData.slice(1) //remove first element (queue)
}
我认为您需要尝试var arrayLength = selectedData.length -1;
你像普通数组一样从0开始,但你不是从一个空数组开始吗?
另外,当您使用.length
时,它会返回数组或集合的真实计数,而不是0索引。`
您可以覆盖数组的push()
方法,如下所示:
var a = [];
a.push = function(){}
或者像这个
a.push = function (newEl){
if(this.length <3){
Array.prototype.push.call(this, newEl)
}
}
这不是一个完整的例子,因为push()可以接受许多参数,您也应该处理这种情况
var index=selectedData.indexOf(3);只需为您提供值为3的数组元素的索引示例
selectedData = [ 0, 3 , 2];
alert( selectedData.indexOf( 3 ) ); // this will alert "1" that is the index of the element with value "3"
您可以使用此场景
var selectedData = [];
myElement.on('click', function() {
//if selectedData length is less than 3, push items
});
这是可行的。
myElement.on('click', function() {
if(selectedData.length > 3){
selectedData = selectedData.splice(0, 3);
}
console.log(selectedData.length, 'the length');
});
相关文章:
- Mongoose-在更新中删除数组元素
- 在特定索引处剥离/删除数组中的值
- Framework7:使用swipeout删除数组中的项
- Javascript删除数组中某个位置之后的项
- 通过选中和取消选中复选框来添加和删除数组中的值
- 编写删除数组并添加到列表的函数
- Javascript - 删除数组中的重复值
- 在 Kineticjs 中删除数组中的组
- 如何根据数组内容添加/删除数组中的元素
- 用于删除数组中的零的Javascript函数代码
- Javascript-仅使用pop()方法删除数组中的负值
- 删除数组元素并将它们添加回原来的位置
- 如果一个键匹配,如何删除数组元素
- 无法使用拼接删除数组中的元素
- 如何从ko.computed中删除数组项
- 删除数组中的重复项,为什么此代码不起作用
- 使用另一个数组按索引删除数组中的对象
- 在 jquery 中,如何通过索引[“键”] 或值删除数组元素
- 使用 Lodash 删除数组中的元素
- 按索引删除数组元素