我有一个java脚本数组。我想使用值从数组中删除特定项。我无法通过键删除,因为我正在制作动态功能,并且我只有值,所以我必须从使用值中删除特定项目。
var arr = Array();
arr['a'] = 123;
arr['b'] = 234;
arr['c'] = 345;
arr['d'] = 456;
arr['e'] = 567;
答案 0 :(得分:2)
如果您想要删除重复的值:
var arr = Array();
arr['a'] = 123;
arr['b'] = 234;
arr['c'] = 345;
arr['d'] = 456;
arr['e'] = 567;
function removeEl(arr,val){
for (var i in arr){
if(arr[i]==val){
delete arr[i];
}
}
}
removeEl(arr,234)
console.log(arr)
答案 1 :(得分:2)
您似乎将JavaScript数组视为关联数组,但是,这并不是JavaScript中数组的工作方式。根据您的数据格式,我建议将它们存储为对象:
var obj = {
"a": 123,
"b": 234,
"c": 345,
"d": 456,
"e": 567
};
然后您可以使用此函数进行迭代和删除:
function removeByValue(object, value) {
for (var e in object) {
if (object[e] === value) {
delete object[e];
}
}
}
答案 2 :(得分:0)
首先,您要创建array
,然后将其视为object
。
如果您假装数组只能获取integer
属性,那么您的JavaScript生活将变得更加轻松。[1]
所以,你真正想做的是:
var obj = {};
obj['a'] = 123;
obj['b'] = 234;
obj['c'] = 345;
obj['d'] = 456;
obj['e'] = 567;
或者,以对象文字格式:
var obj = {
a: 123,
b: 234,
c: 345,
d: 456,
e: 567
};
要从property
删除object
,只需使用delete
关键字:
delete obj.b;
[1]从技术上讲,数组也是对象 - 但数组是特殊目的对象。
答案 3 :(得分:0)
.indexOf
无效,因为它不是数组,因此您应手动查找并删除此值
var arr = Array();
arr['a'] = 123;
arr['b'] = 234;
arr['c'] = 345;
arr['d'] = 456;
arr['e'] = 567;
var result={};
var value_to_remove = 123;
for(key in arr){
if(arr[key]!=value_to_remove)
result[key] = arr[key];
}
答案 4 :(得分:-1)
在PHP中使用array_search
查找密钥然后使用unset()
销毁指定的变量。
<强>编辑强>
在Jquery中:
查找索引使用inArray
jQuery.inArray( "123", arr )
并取消设置使用delete
delete arr.index;