下面的代码循环遍历JavaScript对象,并仅收集数组属性:
const building = this.building
let panoramaList = []
for (let key in building) {
const panoramas = building[key]
if (Array.isArray(panoramas)) {
panoramaList.push({ [key]: panoramas })
}
}
console.log(panoramaList)换句话说,它是这样的:
{
name: '',
description: ''.
livingroom: Array[0],
study: Array[1],
bedroom: Array[0]
}然后把它变成这样:
[
{ livingroom: Array[0] },
{ study: Array[1] },
{ bedroom: Array[0] }
]然而,我需要生成的是:
{
livingroom: Array[0],
study: Array[1],
bedroom: Array[0]
}如何做到这一点呢?
发布于 2016-03-31 17:01:58
尝尝这个
var output = Object.keys(building).map(function(val){ return { val : building[val] } });对于最终的输出
var panoramaList = {}
Object.keys(building).forEach(function(val){
if ( Array.isArray(building[val] )
{
panoramaList[val] = building[val];
}
});发布于 2016-03-31 17:03:08
更改此设置:
const building = this.building
let panoramaList = []
for (let key in building) {
const panoramas = building[key]
if (Array.isArray(panoramas)) {
panoramaList.push({ [key]: panoramas })
}
}
console.log(panoramaList)要这样做:
const building = this.building
let panoramaList = {}
for (let key in building) {
const panoramas = building[key]
if (Array.isArray(panoramas)) {
panoramaList[key]=panoramas
}
}
console.log(panoramaList)发布于 2016-03-31 17:05:04
使用Object.keys并尝试如下所示:
var input = {} //...your input array
var keys = Object.keys(input);
var result = {};
keys.forEach(function (key) {
if (Array.isArray(input[key])) {
result[key] = input[key];
}
});https://stackoverflow.com/questions/36328745
复制相似问题