如何获取键值对的索引

时间:2016-02-27 10:52:25

标签: javascript jquery angularjs

    var myObj={
        age: null,
        anothercolumn: null,
        caseNum: null,
        casecount: null,
        casecountfgfg: null,
        city: null,
        country: null,
        county: null
   }

我必须更改位于第3位的键名。 信息我只有新的密钥名称和位置。

类似

myObj[2] = 'new value'

请建议

2 个答案:

答案 0 :(得分:1)

非常小心!在ES2015之前,未指定属性键的顺序。所以它可以改变,并且从浏览器到浏览器是不同的。

In ES2015 the order is specified as the order of creation

所以无法做你想做的事情

唯一可能的方法是创建一个新对象并按所需顺序应用密钥。我可以建议不依赖于对象键的顺序

答案 1 :(得分:1)

正如@Lux所述,在ES2015之前未指定属性键的顺序。所以它只是可以改变,并且从浏览器到浏览器是不同的。但是, 解决 循环通过对象 获取密钥值信息 查看要替换的键 ,然后 循环替换您想要的键的对象替换 ,如下所示:

    var myObject =[{"apple":"1"},{"ball":"3"},{"cat":"wer"},{"Nepal":"beautiful"},{"cat":"wer"}];//mock object
            for (var key in myObject) {
        if (myObject.hasOwnProperty(key)) {
            console.log("Key: " + key + ", Value: " + JSON.stringify(myObject[key]));
        }
    }
//if i want to replace all the cat key, then:
    for (var i = 0; i < myObject.length; i++) {
        myObject[i].catReplaced = myObject[i]['cat'];
        delete myObject[i].cat;
    }  

<强> PLUNKER: Removing a particular key from an object