是否可以在使用外部变量循环对象时更改密钥。想象一下:
var data = [{
"id": 1,
"name": "Simon",
"age": 13
}, {
"id": 2,
"name": "Helga",
"age": 18
}, {
"id": 3,
"name": "Tom",
"age": 27
}, ]
var key = name;
for (var i = 0; i < data.length; i++) {
var output = data[i].key;
}
但是,当然,这会以未定义的输出结束。目标是构建一个可以处理不同循环的函数。
答案 0 :(得分:1)
您可以像使用数组一样访问JavaScript中的对象。这是您要查找的代码。
var data = [{
"id": 1,
"name": "Simon",
"age": 13
}, {
"id": 2,
"name": "Helga",
"age": 18
}, {
"id": 3,
"name": "Tom",
"age": 27
}, ]
var key = "name";
for (var i = 0; i < data.length; i++) {
var output = data[i][key];
}
在参考其他答案(似乎已被删除)时,我不建议使用foreach,因为Internet Explorer 8不支持它。
但是,您可以使用:
var key = "name";
for (var i in data) {
if(data.hasOwnProperty(i))
{
var output = data[i][key];
}
}
答案 1 :(得分:0)
我相信你需要这样的功能:
function handleKey(objectArray, key) {
for (var index in objectArray) {
//do something with objectArray[index][key]
}
}
像这样调用此函数:handleKey(data, "name")
该函数处理对象数组的关键属性。您可以根据需要进一步自定义,我决定简短以保持简单。