我想使用此代码构建对象
$("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}
...
}
我在这里错过了什么?
答案 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]
我认为在这种情况下我没有看到在数组上使用对象的任何优势。