Создание и обновление JSON - PullRequest
0 голосов
/ 10 октября 2010

Я могу создать объект Json как здесь Как создать JSON с помощью JavaScript для цикла? отличный! и я создал один, как показано ниже

[
    {
        "id": "10",
        "userName": "kuttan" 
    },
    {
        "id": "11",
        "userName": "kunjan" 
    }
]

Предположим, я хочу обновить имя пользователя с идентификатором 10 до "новое имя" что мне делать? (я не знаю, индекс равен 1)

Ответы [ 2 ]

1 голос
/ 10 октября 2010

Цикл над вашим массивом объектов (потому что это то, что он есть) и проверка атрибута "id" каждого объекта.

var list =  [ { "id": "10", "userName": "kuttan" }, { "id": "11", "userName": "kunjan" } ];

for (var i=0;i<list.length;i++) {
  if (list[i].id == "10") {
    alert(i);
  };
};

Затем вы можете абстрагировать это в некоторыйхорошая функция.

function findIndexById(list, id) {
  for (var i=0;i<list.length;i++) {
    if (list[i].id == id) {
      return i;
    };
  };  

  return -1;
};

Затем используйте ее следующим образом:

var list =  [ { "id": "10", "userName": "kuttan" }, { "id": "11", "userName": "kunjan" } ];
var index = findIndexById(list, "10");

if (index !== -1) {
  list[index].userName = "new username";
};
0 голосов
/ 10 октября 2010

Вы можете перебрать массив и проверить свойство id объекта в текущей итерации.Если это 10, присвойте новое имя пользователя userName.

var json = [ { "id": "10", "userName": "kuttan" }, { "id": "11", "userName": "kunjan" } ],
    len = json.length,
    obj;

while(len--) {
  obj = json[len];
  if (obj.id == 10) {
      obj.userName = 'foobar';
  }
}

console.log(json); // outputs [{id:"10", userName:"foobar"}, {id:"11", userName:"kunjan"}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...