我有一个包含以下数据的对象:
{cost: 2
field1: 2
field2: 2
field3: 2
field4: 2
length: 2
material: 5715382975332352
name: "name"
stock: 2
thickness: 2
type: "RECTANGULAR"}
现在我想将field1,field2,field3和field4更改为:
parameters: [2, 2, 2, 2]
,因此请删除该字段并将其变成仅包含值的数组,因此更新后的对象应类似于:
{cost: 2
parameters: [2,2,2,2] //values field1, field2, field3, field4
length: 2
material: 5715382975332352
name: "name"
stock: 2
thickness: 2
type: "RECTANGULAR"}
注意:如果对数组进行排序更容易,我也可以更改field1,field2等名称。
我尝试了以下方法,但是没有运气: Convert object's properties and values to array of key value pairs
答案 0 :(得分:1)
步骤:
使用名为data
的属性在parameters
对象中创建一个数组。
将每个data.field*
推入data.parameters
数组。
此后每个data.field*
删除。
无循环
let data = {cost: 2,
field1: 2,
field2: 2,
field3: 2,
field4: 2,
length: 2,
material: 5715382975332352,
name: "name",
stock: 2,
thickness: 2,
type: "RECTANGULAR"
}
data.parameters = [data.field1, data.field2, data.field3, data.field4];
delete data.field1;
delete data.field2;
delete data.field3;
delete data.field4;
console.log(data);
使用循环
let data = {cost: 2,
field1: 2,
field2: 2,
field3: 2,
field4: 2,
length: 2,
material: 5715382975332352,
name: "name",
stock: 2,
thickness: 2,
type: "RECTANGULAR"
}
data.parameters = [];
for (let i = 1; i <= 4; i++){
data.parameters.push(data["field"+i]);
delete data["field"+i];
}
console.log(data);
答案 1 :(得分:0)
从输入对象中获取条目,然后将它们简化为一个新对象,使用键field
检查道具并将它们分组为一个新的道具parameters
,它是一个数组:
const data = {
cost: 1,
field1: 2,
field2: 3,
field3: 4,
field4: 5,
length: 6,
material: 5715382975332352,
name: "name",
stock: 7,
thickness: 8,
type: "RECTANGULAR"
};
console.log(Object.entries(data).reduce((acc, val, ind) => {
if (val[0].includes('field')) {
acc['parameters'] = acc['parameters'] || [];
acc['parameters'].push(val[1]);
}
else {
acc[val[0]] = val[1];
}
return acc;
}, {}));
答案 2 :(得分:0)
这可以做到
var a={cost: 2,
field1: 2,
field2: 2,
field3: 2,
field4: 2,
length: 2,
material: 5715382975332352,
name: "name",
stock: 2,
thickness: 2,
type: "RECTANGULAR"};
var arr=Object.keys(a);
var values=[];
arr.forEach((e)=>{
if(e.includes('field'))
{
values.push(a[e]);
delete a[e];
}
})
a.parameters=values;
console.log(a);
答案 3 :(得分:0)
您可以这样做。.
http.formLogin().disable(); http.logout().disable();