假设我收到一个包含有关人员信息的JSON字符串.现在我循环遍历所有JSON对象并提取名称和年龄或每个人.
如何将这些元组作为元组存储在列表中以便进一步处理?(例如,通过另一个功能)
假设传入的JSON类似于以下内容:
var incomingList = [{ "name": "Homer Simpson", "age": 45, "occupation": "Nuclear Plant Technician", ... },{ "name": "Marge Simpson", "age": 44, "occupation": "Homemaker", ... }, ... ]
您只能将名称和年龄提取到类似的对象数组中:
var nameAndAgeList = incomingList.map(function(item) { return { name: item.name, age: item.age }; });
JavaScript只有对象和数组,而不是元组.如果您的数据是关联的(每个记录都有键值对,字段名称作为键),那么上述方法将正常工作.
但是,如果需要将单个对象中的名称和年龄关联为键值对(如关联数组),并将名称作为键,将年龄作为值,则以下内容将起作用(假设名称是唯一的):
var namesAndAges = incomingList.reduce(function(result,item) { result[item.name] = item.age; return result; },{});
基于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); }