2016-02-27 2 views
1
var myObj={ 
     age: null, 
     anothercolumn: null, 
     caseNum: null, 
     casecount: null, 
     casecountfgfg: null, 
     city: null, 
     country: null, 
     county: null 
    } 

Мне нужно изменить имя ключа, которое находится на 3-й позиции. Информация У меня есть только новое ключевое имя и позиция.Как получить индекс пары значений ключа

что-то вроде

myObj[2] = 'new value' 

пожалуйста предложить

+2

В данном случае проблема заключается в том, что ассоциативные массивы не имеют одинакового порядка по умолчанию в каждом браузере. Всегда проверяйте сортировку клавиш по алфавиту перед их заменой, так как в некоторых браузерах у вас могут быть сюрпризы. – blex

+0

@Tushar OP хотел изменить имя ключа. Кроме того, вы не можете гарантировать индекс ключей объекта. –

+0

@blex: так что вместо того, чтобы просто позиционировать, мне нужна информация, которую я собираюсь изменить, это правильно – Prashobh

ответ

1

Будьте очень осторожны! До ES2015 порядок ключей свойств не указан. Так что он просто может измениться и отличается от браузера к браузеру.

In ES2015 the order is specified as the order of creation.

Итак, вы не можете делать то, что хотите.

Единственный возможный способ - создать новый объект и применить ключи в том порядке, в котором вы хотите. Я могу просто рекомендовать не зависеть от порядка ключей объектов!

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

Смежные вопросы