我的json对象看起来像:
User { ID: 234, name: 'john', ..);
我想构建一个包含所有ID的字符串。
我该怎么做? 有比下面更优雅的方式吗?
var ids = '';
for(int x = 0; x < json.length; x++)
{
ids += json[x].Id + ",";
}
// strip trailing id
答案 0 :(得分:3)
假设您是一个包含多个用户的数组,这就是您的问题似乎暗示(即使您显示的示例既不是有效的JSON,也不表示存在多个类型为user的对象) ...
var jsonResult = [{ID: 1, name: 'John'}, {ID: 2, name: 'Bob'}];
var ids = jsonResult.map( function(user) {return user.ID;} ).join(',');
// ids will be "1,2"
答案 1 :(得分:2)
您可以创建一个数组,使用.push()
添加项目,然后使用.join()
结果,如下所示:
var ids = [];
for(int x = 0; x < json.length; x++)
{
ids.push(json[x].Id);
}
var idString = ids.join(',');
答案 2 :(得分:0)
对于JavaScript 1.8(ECMA-262 Edition 5),你可以使用Array.reduce来做同样的事情:
[{id:1},{id:2},{id:3}].reduce(function(a,b) { return a+','+b.id }, '').substr(1)
如果您希望在数组中累积值并最终将它们连接起来,请执行以下操作:
[{id:1},{id:2},{id:3}].reduce(function(a,b) { a.push(b.id); return a }, []).join(',')