我尝试使用jquery创建一个新对象,但只有我的循环的最后一个元素被添加到我的对象
var selectArray ={};
$.each(response, function( i, x ){
selectArray['id'] = x.id;
selectArray['text'] = x.name;
});
console.log(selectArray);
答案 0 :(得分:3)
使用数组并推送包含键和值的新对象:
var selectArray = [];
$.each(response, function( i, x ){
selectArray.push({"id":x.id, "name":x.name})
});
console.log(selectArray);
答案 1 :(得分:0)
您已经说过"关联数组" (这不是JavaScript使用的术语;它们只是"对象"),所以我猜你想创建一个selectArray['some id']
将给出的对象你name
:
var selectArray = {};
$.each(response, function( i, x ){
selectArray[x.id] = x.name;
});
console.log(selectArray);
例如,如果您的response
包含三个项目(ID" tjc" =>名称" TJ Crowder",id" joeblow" =>名称" Joe Blow"和id" bozscaggs" =>名称" Boz Scaggs"),你最终会得到一个对象看起来像这样:
{
"tjc": "T.J. Crowder",
"joeblow": "Joe Blow",
"bozscaggs": "Boz Scaggs"
}
和
selectArray['tjc']
...会给你"T.J. Crowder"
。
完整示例:Live Copy
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<meta charset=utf-8 />
<title>Creating a lookup object</title>
</head>
<body>
<p>Look in the console</p>
<script>
(function() {
var response = [
{id: "tjc", name: "T.J. Crowder"},
{id: "joeblow", name: "Joe Blow"},
{id: "bozscaggs", name: "Boz Scaggs"}
];
var selectArray = {};
$.each(response, function( i, x ){
selectArray[x.id] = x.name;
});
console.log(selectArray);
})();
</script>
</body>
</html>