Не используйте eval
но JSON.parse] (https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/JSON/parse). Если он недоступен в некоторых старых браузерах, существует множество реализаций, которые менее уязвимы для атаки, чем просто eval
.
говорят, что, имея:
var data = '[{ "group1" : "T1"}, { "group1" : "T2"}, { "group2" : "T3"}]';
var array = JSON.parse(data);
будет генерировать массив объекта, каждый из которых имеет одно собственное свойство group1
или group2
. Для того, чтобы быть ясно:
var myobj = {"group1" : "T1"}
Является Object literal, и это точно так же из:
var myobj = new Object();
myobj.group1 = "T1";
Итак, как вы можете видеть, нет key
собственности в любом месте.
Непонятно, что вы хотите сравнить, также потому, что у третьего объекта есть другое имя свойства.
Обновлено: О вашем комментарии, дело в том, что нет «объектного ключа», а только свойств объекта. Это означает, что вам нужно знать имя «ключ» заранее, с тем чтобы использовать его:
array[0].group1 === array[1].group1 // false, one is "T1", one is "T2"
Если вы хотите, чтобы иметь key
свойства, которые содержат значение "group1"
, чем ваши объекты должна отличаться :
var data = '[{"key" : "group1", "value": "T1"}, {"key": "group1", "value" : "T2"}, { "key" : "group2", "value" : "T3"}]'
Затем, вы можете иметь:
var array = JSON.parse(data);
array[0].key === array[1].key // true, both are "group1"
array[0].value === array[1].value // false, one is "T1", one is "T2"
Это не как объекты работы. Пожалуйста, ознакомьтесь с руководством по JavaScript MDN: https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Working_with_Objects. Связано: http://stackoverflow.com/q/11922383/218196. –
Итак, вы пытаетесь выяснить, совпадает ли ключ (ы) одного объекта с ключом другого объекта? –
Да @Qantas 94 Тяжелый. Есть ли способ сделать это. Я новичок в javascript. нуждаются в хорошем разъяснении относительно этого. – star