преобразование массива JavaScript в объект - PullRequest
2 голосов
/ 05 ноября 2011

Я хочу построить объект, используя этот код

$("input").bind("keydown",function(e){
 var code = (e.keyCode ? e.keyCode : e.which);
 if (code == 13){
  var guess = $("input").val();
  guess = guess.split(" ");
  var oGuess = {};
  for (var x = 0; guess.length ; x++){
   oGuess[x] = oGuess[x] = {"text": guess[x]};
  }
  $("input").val("");
 }
});

это на самом деле сбой моих браузеров (последние стабильные ff и chrome) при нажатии Enter.вот jsfiddle http://jsfiddle.net/kfqJC/1/

мне нужен объект, похожий на этот

oGuess = {
"1": { "text" : string}
"2": { "text" : string}
...
}

что мне здесь не хватает?

1 Ответ

3 голосов
/ 05 ноября 2011

Ваш цикл никогда не заканчивается. Если guess имеет один или несколько элементов, guess.length всегда будет иметь значение true.

Я полагаю, вы хотите

for (var x = 0; x < guess.length ; x++){
//              ^^^      

Кроме того, для чего это нужно?

oGuess[x] = oGuess[x] = {"text": guess[x]};

Просто напишите

oGuess[x] = {"text": guess[x]};

И если вы хотите, чтобы свойства начинались с 1, вы должны написать

oGuess[x+1]

думал, что в этом случае я не вижу преимущества использования объекта над массивом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...