Bor*_*ris 26 javascript arrays json list node.js
假设我收到一个包含有关人员信息的JSON字符串.现在我循环遍历所有JSON对象并提取名称和年龄或每个人.
如何将这些元组作为元组存储在列表中以便进一步处理?(例如,通过另一个功能)
Roy*_*ker 17
假设传入的JSON类似于以下内容:
var incomingList = [{
"name": "Homer Simpson",
"age": 45,
"occupation": "Nuclear Plant Technician",
...
},{
"name": "Marge Simpson",
"age": 44,
"occupation": "Homemaker",
...
},
...
]
Run Code Online (Sandbox Code Playgroud)
您只能将名称和年龄提取到类似的对象数组中:
var nameAndAgeList = incomingList.map(function(item) {
return {
name: item.name,
age: item.age
};
});
Run Code Online (Sandbox Code Playgroud)
JavaScript只有对象和数组,而不是元组.如果您的数据是关联的(每个记录都有键值对,字段名称作为键),那么上述方法将正常工作.
但是,如果需要将单个对象中的名称和年龄关联为键值对(如关联数组),并将名称作为键,将年龄作为值,则以下内容将起作用(假设名称是唯一的):
var namesAndAges = incomingList.reduce(function(result,item) {
result[item.name] = item.age;
return result;
},{});
Run Code Online (Sandbox Code Playgroud)
基于Vikram的答案,正如您特别要求的元组一样,下面将返回一个数组数组 - 换句话说,就是一个元组列表.
var parsed = JSON.parse('[{"name":"john", "place":"usa", "phone":"12345"},{"name":"jim", "place":"canada", "phone":"54321"}]');
var people = [];
for (var i=0; i < parsed.length; i++) {
var person = [parsed[i].name, parsed[i].place, parsed[i].phone];
people.push(person);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59744 次 |
| 最近记录: |