我有这样的变量
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)
可以使用reduce
和Object.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]));
}