如何在 JavaScript 中将具有多个名称/值对的 JSON 字符串数组保存在单独的数组中
How to save JSON string array with multiple name/value pair in separate arrays in JavaScript
我有以下JSON字符串。
[ { "id" : "1", "name" : "name1" },
{ "id" : "2", "name" : "name2" },
{ "id" : "3", "name" : "name3" },
{ "id" : "4", "name" : "name4" },
{ "id" : "5", "name" : "name5" } ]
如何将其保存在 2 个单独的"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;
});
使用地图功能
我不完全理解你的问题,但这段代码可能是确定你的目标的良好开端。
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
这是一个通用的处理,可以动态处理 n 个元素。
var arr = [{
"id": "1",
"name": "name1"
}, {
"id": "2",
"name": "name2"
}, {
"id": "3",
"name": "name3"
}, {
"id": "4",
"name": "name4"
}, {
"id": "5",
"name": "name5"
}];
// key is an optional parameter.
// if key is sent only the array having that key is returned.
// else the entire structure is returned.
function processData(arr, key) {
var obj = {},
i,
prop,
len = arr.length;
for (i = 0; i < len; i += 1) {
elem = arr[i];
for (prop in elem) {
if (!obj[prop]) {
obj[prop] = [];
}
obj[prop].push(elem[prop]);
}
}
if (key) {
return obj[key];
}
return obj;
}
// this logs the array containing "id" only.
console.log(processData(arr, "id"));
// this consoles the entire structure.
//console.log(processData(arr));
var data = [ { "id" : "1", "name" : "name1" }, { "id" : "2", "name" : "name2" }, { "id" : "3", "name" : "name3" }, { "id" : "4", "name" : "name4" }, { "id" : "5", "name" : "name5" } ];
var result = {
name: [],
id: []
};
data.forEach(d => {
result.name.push(d.name);
result.id.push(d.id);
});
console.log(result);
相关文章:
- 将单独的数组深层键转换为所需的类型(数组或对象)
- 显示单独数组中两个数组的相同元素
- 根据属性将javascript中的对象数组拆分为单独的数组
- 名称对象/拆分为单独的对象或数组
- 如何从php中的会话数组中提取未知数量的元素,并将它们用作JavaScript中的单独变量
- 取数组,将奇数和偶数推入单独的数组中
- 空数组在比较时返回 false,但在单独返回 true 时返回 true.为什么这样
- jQuery - 从数组中获取的效果元素(单独)
- 对象数组,在 javascript 中具有单独的属性
- JQuery:将数字相乘到单独的数组,然后得到结果的总和
- 当对象本身存储在 JavaScript 的数组索引中时,如何打印对象的每个单独属性
- 我怎样才能在这个共享原型中拥有单独的数组
- 将 html 内容分解为单独的更高级别 html 标记并将它们存储在数组中
- 如何推送到实际对象的数组最后状态,清除它并像新对象一样单独编辑
- 如何设置图像数组并单独循环浏览它们
- 将数据从单独的 JavaScript 文件获取到数组中
- 如何在C# MVC的VIew中将列表数组拆分为单独的数组
- 尝试使用基于数组的 jquery 输出单独的单击函数
- 我需要使用单独类中的方法将单个对象与数组进行比较
- 从单独的PHP文件中获取数组并存储到jQuery数组中