如何在JavaScript中将具有多个名称/值对的JSON字符串数组保存在单独的数组中

如何在JavaScript中将具有多个名称/值对的JSON字符串数组保存在单独的数组中,javascript,json,Javascript,Json,我有以下JSON字符串 [ { "id" : "1", "name" : "name1" }, { "id" : "2", "name" : "name2" }, { "id" : "3", "name" : "name3" }, { "id" : "4", "name" : "name4" }, { "id" : "5", "name" : "name5" } ] 如何将其保存在两个单独的“id&“name”数组中,其中id和name数组的数据与特定索引上的原始数组中的数据相同 var da

我有以下JSON字符串

[ { "id" : "1", "name" : "name1" },
{ "id" : "2", "name" : "name2" },
{ "id" : "3", "name" : "name3" },
{ "id" : "4", "name" : "name4" },
{ "id" : "5", "name" : "name5" } ]
如何将其保存在两个单独的“id&“name”数组中,其中id和name数组的数据与特定索引上的原始数组中的数据相同

var data = [ { "id" : "1", "name" : "name1" },
{ "id" : "2", "name" : "name2" },
{ "id" : "3", "name" : "name3" },
{ "id" : "4", "name" : "name4" },
{ "id" : "5", "name" : "name5" } ];

var ids = data.map(function(obj){
      return obj.id;
});

var names = data.map(function(obj){
      return obj.name;
});

使用映射函数这是一种通用处理,可以动态处理n个元素

var-arr=[{
“id”:“1”,
“名称”:“名称1”
}, {
“id”:“2”,
“名称”:“名称2”
}, {
“id”:“3”,
“名称”:“名称3”
}, {
“id”:“4”,
“名称”:“名称4”
}, {
“id”:“5”,
“名称”:“名称5”
}];
//键是一个可选参数。
//如果发送了密钥,则只返回具有该密钥的数组。
//否则返回整个结构。
函数processData(arr,键){
var obj={},
我
道具
len=arr.长度;
对于(i=0;i//log(processData(arr));
我不完全理解您的问题,但这段代码可能是确定您的目标的良好开端

forEach
功能可以轻松实现这一点

var ids = [];
var names = [];
data.forEach(function(obj) {
 ids.push(obj.id);
 names.push(obj.name);
});
如果您也想使用
map
功能

var ids = data.map(function(obj){
  return obj.id;
});

var names = data.map(function(obj){
  return obj.name;
});
但是,如果您的目标是实现交叉兼容性,请使用正常的
for
循环

var ids = [];
var names = [];
for (var i in data) {
 ids.push(data[i].id);
 names.push(data[i].name);
}
输出

["1", "2", "3", "4", "5"] // ids

["name1", "name2", "name3", "name4", "name5"] // names
var data=[{“id”:“1”,“name”:“name1”},{“id”:“2”,“name”:“name2”},{“id”:“3”,“name”:“name3”},{“id”:“4”,“name”:“name4”},{“id”:“5”,“name”:“name5”};
var结果={
姓名:[],
id:[]
};
data.forEach(d=>{
结果.name.push(d.name);
结果:id.push(d.id);
});

console.log(结果)
您被困在哪里?您知道如何迭代数组吗?如何访问对象属性?如何向数组中添加项?请展示您尝试过的内容,以便我们了解实际问题所在。这不是代码编写服务。您需要展示您尝试解决问题的内容yourself@RKumar请验证,让我知道如果您有任何问题。您也可以使用
.reduce()
@Pointy
数组来实现。prototype.reduce
应该在每次迭代时返回一些东西。确实应该。在这种情况下,它将是结果对象。您的方法也很好,不要误解我的意思。@Pointy我没有。我认为我的实现性能更好。