JavaScript在一维关联数组中转换多维数组
JavaScript transform multidimensional array in one dimensional associative array
我有一个包含两个嵌套数组的多维数组。
看起来像这样:
$scope.multidimensionalArray = [{
id:1,
name:"John",
....
nestedArray1:[{
importantKey1:"important_data1",
....
nestedArray2:[{
importantKey2:"important_data2",
....
}
]},
....
]}];
如何在一维中转换这个多维数组,必须看起来像这样:
$scope.oneDimensional = [
{
id:1,
name:"John",
importantKey1:"important_data1",
importantKey2: "important_data2",
....
},
....
];
此解决方案的特点是Object.keys()
和Array.prototype.forEach()
。
function getProperties(o, obj) {
Object.keys(o).forEach(function (k) {
if (Array.isArray(o[k])) {
getItems(o[k], obj);
} else {
obj[k] = o[k];
}
});
}
function getItems(array, obj) {
array.forEach(function (o) {
getProperties(o, obj);
});
}
var multidimensionalArray = [{ id: 1, name: "John", nestedArray1: [{ importantKey1: "important_data1", nestedArray2: [{ importantKey2: "important_data2", }] }] }, { id: 2, name: "Johanna", nestedArray1: [{ importantKey1: "important_data11", nestedArray2: [{ importantKey2: "important_data12", }] }] }],
result = multidimensionalArray.map(function (o) {
var obj = {};
getProperties(o, obj);
return obj;
});
document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>');
就像在sql或一般的关系数据库中一样,在ode维度中拥有这些数据的唯一机会是多次使用以下内容:因此,它将是多次id,name,对于每一次,您应该从嵌套数组中有一个条目。
如果有双层嵌套,那么您可能需要重复更多的字段。从sql中查找JOIN定义,它可能会充实一些内容。
相关文章:
- 使用JS将数组转换为json对象
- 本地存储中的字符串到字节数组转换
- Javascript函数,用于将数组转换为“;2-元组”;
- php数组转换为javascript
- 在Javascript中将一个值和字符串数组转换为if语句
- 将数组转换为javascript格式的字符串
- 如何将数组转换为有效的json
- JSON数组转换为JS对象数组
- 如何将数组转换为映射
- JavaScript:将字符串数组转换为文本区域
- javascript |数组转换
- 数组转换为多个字符串
- Javascript将数组转换为字符串并使其反向输出
- 将Byte数组转换为Angularjs中的Base64字符串
- 将对象数组转换为与nodejs/pg/unnest兼容的数组
- 将Javascript数组转换为PHP数组
- 将数组转换为键值对
- 使用Ramda将对象数组转换为普通对象
- javascript将对象数组转换为字符串以存储在s3中
- 使用.join方法将数组转换为不带逗号的字符串