如何在JavaScript中将具有多个名称/值对的JSON字符串数组保存在单独的数组中
我有以下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
[ { "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我没有。我认为我的实现性能更好。