根据另一个对象中属性的数量创建新数组(Javascript)

4

我有一个对象,根据其中属性的数量,我需要创建一个新的数组。

const data = {
    name: 'John Doe',
    company:'Google'
}

因此,新数组应该是这样的:
const array = [
    0: {
        id: 3434,
        fileId: name, //from data
        criter: 'John Doe;
        address: '12345'
    }
    1: {
        id: 4233,
        fileId: company, //from data
        criter: 'Google;
        address: '32344'
    }
]

我已经尝试创建一个数组,并使用Object.keys和Object.values来获取数据,但是我没有实现这一点。

 const testArray = [{
    criter: Object.values(data).map(key => key),
    fileId: Object.keys(data).map(key => key)',
  }];

4
不清楚您的意思,请提供一个 [mcve]。 - mplungjan
Object.entries() 将会有所帮助。 - Sivakumar Tadisetti
从对象data的两个(或更多)属性中,我正在尝试创建一个带有新对象的新数组。(在这种情况下是两个对象) - alar
2个回答

2

Object.entries()可以帮助解决这个问题。

const data = {
  name: 'John Doe',
  company: 'Google'
}

var resultObj = Object.entries(data).map(function(keyvalue) {
  return {
    id: 4233,
    fileId: keyvalue[0], // key
    criter: keyvalue[1], // value
    address: '32344'
  }
});

console.log(resultObj);


0

这是你要寻找的吗?

const data = {
    name: 'John Doe',
    company:'Google'
}

console.log(Object.entries(data).map(([fileId,criter])=>({fileId,criter})));

带有虚拟地址和ID:

const data = {
    name: 'John Doe',
    company:'Google'
}

console.log(Object.entries(data).map(([fileId,criter])=>({fileId,criter,id:'1234',address:'1234'})));


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接