我想使用此代码构建对象
$("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("");
}
});
这实际上在按Enter键时崩溃了我的浏览器(最新的ff和chrome)。继承人jsfiddle http://jsfiddle.net/kfqJC/1/
我需要对象是这样的
oGuess = {
"1": { "text" : string}
"2": { "text" : string}
...
}
我在这里想念什么?
最佳答案
您的循环永远不会终止。如果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]
以为在这种情况下,我看不出使用对象优于数组的任何优势。