我有一个数组:
arr[1234]='foo'
arr[2345]='bar'
arr[6253]='cho'
我希望能够删除密钥=>当我知道其中一对bar
(for-instance)中的值时的值对。
因此,如果我删除了bar
,则数组将等于:
arr[1234]='foo'
arr[6253]='cho'
因此,它将在每个剩余对中保持键和值,并删除其值指定的键和值。
有没有简单的方法来实现这一目标?
提前致谢。
答案 0 :(得分:0)
var res_arr = arr.filter( function filterByValue(element){
if (element != "bar"){
return element
}
});
答案 1 :(得分:0)
通过循环中的值查找属性并使用delete
运算符:
for (var key in arr) {
if (arr[key] === "bar") {
delete arr[key];
break;
}
}
查看演示。
var arr = {};
arr[1234] = 'foo';
arr[2345] = 'bar';
arr[6253] = 'cho';
for (var key in arr) {
if (arr[key] === "bar") {
delete arr[key];
break;
}
}
document.write(JSON.stringify(arr, null, 4));

答案 2 :(得分:0)
您可以使用indexOf获取数组中键的索引
var arr = ["foo", "bar"];
arr.indexOf("bar"); // 1
然后您可以使用splice删除索引
arr.splice( arr.indexOf("foo"), 1 ); // arr = ["bar"]
答案 3 :(得分:0)
var arr= new Array();
arr[1234]='foo';
arr[2345]='bar';
arr[6253]='cho';
delete arr[arr.indexOf('bar')];