如何从json对象数组中获取值并添加到angular中的另一个数组

时间:2019-06-26 13:31:38

标签: json angular typescript

我有以下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
}]

4 个答案:

答案 0 :(得分:1)

假设dataarray,则应在新的空数组中插入数据。

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)

您可以根据需要使用mapdestructing方法,还可以包含所需的属性。我没有在您的数据中看到土地财产。

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将检查数组中的每个元素,并根据元素属性返回新对象。