如何将此数组转换为JavaScript对象?

如何将此数组转换为JavaScript对象?,javascript,Javascript,以下代码循环遍历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(panora

以下代码循环遍历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]
}
如何做到这一点?

试试这个

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];
  }
});
试试这个

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];
  }
});
更改此项:

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)
更改此项:

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)

使用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];
    }
});

使用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];
    }
});

确保将
全景列表
定义为对象

这很有效

var arrays = {
  name: '',
  description: '',
  livingroom: ['1','www'],
  study: ['2','sss'],
  bedroom: ['3','aaa'],
  Kitchen: ['4','bbb'],
}    


const building = arrays
let panoramaList = {};
for (let key in building) {
  const panoramas = building[key]

  if (Array.isArray(panoramas)) {
      panoramaList[key] = panoramas;
  }
}
console.log(panoramaList);

确保将
全景列表
定义为对象

这很有效

var arrays = {
  name: '',
  description: '',
  livingroom: ['1','www'],
  study: ['2','sss'],
  bedroom: ['3','aaa'],
  Kitchen: ['4','bbb'],
}    


const building = arrays
let panoramaList = {};
for (let key in building) {
  const panoramas = building[key]

  if (Array.isArray(panoramas)) {
      panoramaList[key] = panoramas;
  }
}
console.log(panoramaList);

您可能只需要从您拥有的对象中删除不需要的属性,而不是构建新对象:

var数据={
名称:“”,
说明:“”,
客厅:[],
研究:[1],
卧室:[0]
};
Object.keys(数据).forEach(函数(键){
如果(!Array.isArray(数据[key])删除数据[key];
})

document.write(JSON.stringify(data))您可能只需要从您拥有的对象中删除不需要的属性,而不是构建新对象:

var数据={
名称:“”,
说明:“”,
客厅:[],
研究:[1],
卧室:[0]
};
Object.keys(数据).forEach(函数(键){
如果(!Array.isArray(数据[key])删除数据[key];
})

document.write(JSON.stringify(data))
您可能想阅读此文,为什么不删除不需要的属性?@RobG您能提供一个示例代码吗?您可能想阅读此文,为什么不删除不需要的属性?@RobG您能提供一个示例代码吗?谢谢,但我得到
未在“building[key]中定义`.output应该是一个对象,并且只有数组应该作为属性插入,而不是作为数组中的own对象插入。谢谢,但是'building[key]`中没有定义I get
key
。output应该是一个对象,并且只有数组应该作为属性插入,而不是作为数组中的own对象插入。