0

我有一个这样的数据数组,

tourGuide: [
    {"location": "london"},
    {"location": "paris"},
    {"location": "frankfurt"}
]

我想重写 tourGuide 以便它也包含索引。所以它会变成这样:

tourGuide: [
    {"location": "london", "index":0},
    {"location": "paris", "index":1},
    {"location": "frankfurt","index":2}
]

我试过这个,

var x, l=0;
for(x in tourGuide){
    tourGuide["index"] = l;
    l++;
}

但这可能不是正确的方法。

4

3 回答 3

2
var x, l=0;

for(x in tourGuide){

tourGuide[x]["index"] = l;
l++;

}
于 2012-05-18T02:16:32.047 回答
1

试试这个:

for(var i=0;i<tourGuide.length;i++){
    tourGuide[i].index=i
}

//----or more simplified...----

var i=0;
for(;i<tourGuide.length;){
    tourGuide[i].index=i++
}

现场演示:http: //jsfiddle.net/DerekL/qvdzR/

但实际上,您实际上不必创建一个index,因为它们在一个数组中,它们已经有一个index值。

于 2012-05-18T02:16:41.500 回答
1

我建议你忘记这个location属性,只做一个简单的数组。除非您打算稍后添加更多属性,否则常规数组将为您提供数字索引。做就是了:

var output = array();
for (var i=0; i<tourGuide.length; i++) {
  // Just stick each of the locations onto a plain old array
  output.push(tourGuide[i].location;
}

console.log(output);
于 2012-05-18T02:17:12.937 回答