javascript数组到对象转换

时间:2011-11-05 15:37:02

标签: javascript jquery object

我想使用此代码构建对象

$("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)在点击进入时。继承人jsfiddle http://jsfiddle.net/kfqJC/1/

我需要对象是这样的

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

我在这里错过了什么?

1 个答案:

答案 0 :(得分:3)

你的循环永远不会终止。如果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]

我认为在这种情况下我没有看到在数组上使用对象的任何优势。