Javascript删除键和值数组知道值

时间:2015-02-12 11:29:03

标签: javascript

我有一个数组:

arr[1234]='foo'
arr[2345]='bar'
arr[6253]='cho'

我希望能够删除密钥=>当我知道其中一对bar(for-instance)中的值时的值对。

因此,如果我删除了bar,则数组将等于:

arr[1234]='foo'
arr[6253]='cho'

因此,它将在每个剩余对中保持键和值,并删除其值指定的键和值。

有没有简单的方法来实现这一目标?

提前致谢。

4 个答案:

答案 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')];