如何从用户制作的数组中具体拼接出一个项目
How to specifically splice out an item from a user made array?
我正试图只使用一个按钮从数组中添加/删除特定项。到目前为止,当我单击按钮时,它将把项目推入数组,如果我再次单击,它将从数组中删除项目。我的问题是,如果我有更多的按钮,每次都会向数组中添加不同的项目,那么再次单击任何按钮都会完全清空数组。
我知道这是我的剪接,可能只是因为现在是凌晨1点,但如果我能理解我做错了什么,我会被诅咒的。如果有人能告诉我做这件事的正确方法,那就太棒了。这是我的样本代码
var libary = Array();
Array.prototype.contains = function ( needle ) {
for (i in this) {
if (this[i] == needle) return true;
}
return false;
}
function btn1() {
if (libary.contains("Big Book")){
libary.splice("Big Book");
document.getElementById("1").style.cssText = "border: 0;border-radius:0;border-color:0;box-shadow:0;}";
}else{
libary.push("Big Book");
document.getElementById("1").style.cssText = "border: 5px solid #4099FF;border-radius: 12px;outline: none;border-color: #4099FF;box-shadow: 0 0 15px #4099FF;}";
}
};
function btn2() {
if (libary.contains("Small Book")){
libary.splice("Small Book");
document.getElementById("2").style.cssText = "border: 0;border-radius:0;border-color:0;box-shadow:0;}";
}else{
libary.push("Small Book");
document.getElementById("2").style.cssText = "border: 5px solid #4099FF;border-radius: 12px;outline: none;border-color: #4099FF;box-shadow: 0 0 15px #4099FF;}";
}
};
请记住,这只是一个示例,大约还有20多个按钮。
如这里所解释的,splice()
方法需要两个必需的参数来删除元素,即从哪里开始的"index"和要删除的项目的"number"。你可以试着像这样调用splice()
方法
...
var index = library.indexOf("Big Book");
libary.splice(index, 1);
...
通过这种方式,您只删除指定索引处的一个元素。
这里有一个JSFiddle代码,它可以随心所欲地运行,它还可以在每次单击时将数组记录到控制台,这样您就可以看到结果。
相关文章:
- 正在将数据主题添加到所有项目
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 如何检查管道中未定义的项目
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 学生搜索项目jquery/javascript
- 如何获取不属于我项目的上一页的URL
- Dojo:访问dijit.form.Select中单击的项目
- 角度的项目列表 ng 重复,ng 单击显示全宽描述
- 我需要为我的朋友在这个项目上提供帮助
- 如何从 HTML 查询中删除项目
- orderBy$filter在项目删除(拼接)后阻止ng重复列表更新
- 如何从用户制作的数组中具体拼接出一个项目
- 如何在 Angular 中使用拼接从列表中删除项目
- Javascript拼接删除了错误的项目
- 当指定为仅删除一次时,拼接会从数组中删除多个项目
- 拼接javascript数组函数获胜't删除项目
- 从阵列中移除项目,并为循环插入拼接
- 在拼接上重复重复项目,而不是显示最后一个项目
- Javascript项目拼接自出列表
- 如何在javascript中拼接项目列表