从对象复制一个值(值是一个对象)到数组不工作?



我有这样的变量

var rough = {
JOHN : {
date: "03-03-2021",
name: "JOHN",
Qty: 123,
unit: "g"
},
SEBASTIAN : {
date: "03-03-2021",
name: "SEBASTIAN",
Qty: 456,
unit: "g"
}}

我想把它的格式改成

var lastyear = {
data: [
{
date: "03-03-2021",
name: "JOHN",
Qty: 123,
unit: "g"
},{
date: "03-03-2021",
name: "SEBASTIAN",
Qty: 456,
unit: "g"
}]

但是我想复制这个值来改变格式。

快速的方法是使用Object.values({ data: Object.values(rough) })

var rough = {
JOHN: {
date: "03-03-2021",
name: "JOHN",
Qty: 123,
unit: "g",
},
SEBASTIAN: {
date: "03-03-2021",
name: "SEBASTIAN",
Qty: 456,
unit: "g",
},
};
lastyear = { data: Object.values(rough) };
console.log(lastyear)

可以使用reduceObject.entries:

const rough = { JOHN : { date: "03-03-2021", name: "JOHN", Qty: 123, unit: "g" },SEBASTIAN : { date: "03-03-2021", name: "SEBASTIAN", Qty: 456, unit: "g" }}
const result = Object.entries(rough).reduce((a,[name, value])=>[...a,{...value,name}],[]);
console.log(result);

我用for. in

var keys = Object.keys(rough);
for (const data in rough){
lastyear.data.push(rough[data]));
}

我只是按值复制到数组。

var keys = Object.keys(rough);
keys.forEach((data) => {
lastyear.data.push(Object.assign({}, rough[data]));
}

最新更新