如何迭代对象并构建新对象
How to iterate an object and build a new one
我正在使用JavaScript在一个对象中迭代客户,该对象构造如下:
[
{
"customer": "Customer 1",
"project": "1"
},
{
"customer": "Customer 2",
"project": "2"
},
{
"customer": "Customer 2",
"project": "3"
}
]
我希望在迭代中构建一个新对象,该对象将像这样构造:
[
{
"Customer 1": {
"projects": "1"
}
},
{
"Customer 2": {
"projects": [
"2",
"3"
]
}
}
]
如何实现这一点的任何提示?
您可以创建一个中间对象来形成内部级别对象。使用该对象上的迭代器从中形成数组。
有关示例代码,请参阅下文。
var response = [
{
"customer": "Customer 1",
"project": "1"
},
{
"customer": "Customer 2",
"project": "2"
},
{
"customer": "Customer 2",
"project": "3"
}
];
var length = response.length,
i = 0,
result = {},
j = 0,
finalResult = [];
for(;i<length;i++){
var eachObj = response[i];
if(!result[response[i].customer]){
result[response[i].customer] = [response[i].project];
}
else{
result[response[i].customer].push(response[i].project);
}
}
for(var key in result){
var eachObj = [];
eachObj[key] = result[key];
finalResult.push(eachObj);
}
console.log(finalResult);
在新数组中查找客户,如果找到,则添加项目,否则添加客户。
var data = [
{
"customer": "Customer 1",
"project": "1"
},
{
"customer": "Customer 2",
"project": "2"
},
{
"customer": "Customer 2",
"project": "3"
}
];
var newData = [];
data.forEach(function (el, i) {
var customer = newData.filter(function (ell) {
return el.customer === ell.customer;
})[0];
if (customer) {
customer.projects.push(el.project);
} else {
newData.push({ customer: el.customer, projects: [el.project] });
}
});
document.write('<pre>' + JSON.stringify(newData, null, 4) + '</pre>');
相关文章:
- 用javascript从列表对象(JSON的)构建diffrent选项卡
- 正在寻找从JSON/对象构建DOM客户端的JS库
- 从Javascript动态构建JSON对象列表
- 返回它在Javascript中构建的新对象
- 通过推送json构建一个数组对象
- d3.js力布局图:如何从头开始构建nodes对象
- 使用javascript在for循环中构建对象
- 如何使用rails 3.1.4中的FormBuilder.new构建表单生成器对象
- 如何迭代对象/数组中的项,并构建嵌套的JSON
- 循环遍历JQueryUI选项卡控件中的每个选项卡,并构建一个对象数组
- 如何从 jQuery 对象构建 jQuery 对象
- jQuery - 基于作为函数参数传递的对象构建动态 if 语句
- 如何使用嵌套的 JSON 对象构建 JSON 对象
- 提交时的对象构建会导致应用程序堵塞
- JavaScript日期对象构建错误的日期
- 将onclick事件的参数传递到使用数据对象构建HTML的函数中——到目前为止在js中只完成了一半
- 通过ID参数参照另一个对象构建数组
- 如何基于这个简单对象构建这个复杂的数组
- 如何从对象构建查询字符串
- jQuery选择器和对象构建