我有以下json对象:
var arr = [{
0:M:“ LED”
id:1
mtype:“信息亭套餐”
part_fees:200
tb_bid_upins:1
tech_bid_flag:0
tot_media:0
类型:“道路拉伸”
upin:“ AMCADVT1415C0123”
upin_id:“ 2”
},{
1:M:“ LED”
id:1
mtype:“信息亭套餐”
part_fees:200
tb_bid_upins:1
tech_bid_flag:0
tot_media:0
类型:“道路拉伸”
upin:“ AMCADVT1415C0123”
upin_id:“ 2”
}]
现在它有两个值,但是它可以有多个值,因为它是从数据库中获取的。 我从这个json中选择键upin,mtype,land的值并添加到另一个数组中。
我已经尝试关注
for(let item of data){
// this.console.log(item)
this.upins = item.upin;
this.console.log(this.upins);
}
this.console.log(this.upins);```
It shows last index value
I want result as follows
var arr = [{
upins: abc,
mtyp:xyz,
land:123
},{
upins:123,
mtype:pqr,
land:555
}]
答案 0 :(得分:1)
假设data
为array
,则应在新的空数组中插入数据。
const arr = [];
// extract upin, mtype, land from the original array
for (let item of data) {
arr.push({
upin: item.upin,
mtype: item.mtype,
land: item.land
});
}
// OR
const arr = data.map((item) => {
return {
upin: item.upin,
mtype: item.mtype,
land: item.land
};
});
答案 1 :(得分:1)
您可以根据需要使用map和destructing方法,还可以包含所需的属性。我没有在您的数据中看到土地财产。
const result = arr.map(({ upin, mtype }) => ({
upin, mtype
}));
var arr =[{ id: 1,
mtype: "KIOSK PACKAGE",
part_fees: 200,
tb_bid_upins: 1,
tech_bid_flag: 0,
tot_media: 0,
type: "Road Stretch",
upin: "AMCADVT1415C0123",
upin_id: "2"
}, {
id: 1,
mtype: "KIOSK PACKAGE",
part_fees: 200,
tb_bid_upins: 1,
tech_bid_flag: 0,
tot_media: 0,
type: "Road Stretch",
upin: "AMCADVT1415C0123",
upin_id: "2" }]
const result = arr.map(({ upin, mtype }) => ({
upin, mtype
}));
console.log(result);
答案 2 :(得分:0)
这是纯JavaScript,与angular没有关系。您可以使用map函数来转换数组。
const arr2 = this.arr.map(el => ({upins: el.upins, mtyp: el.mtyp, land: el.land}));
答案 3 :(得分:0)
第一个答案是正确的。我只想补充一点,您可以将地图方法用于相同的目标。对我来说更舒服:
const newData = data.map(x => {
return {
upin: x.upin,
mtype: x.mtype,
land: x.land
};
});
Map将检查数组中的每个元素,并根据元素属性返回新对象。