Concat /推送对象键到数组

时间:2018-01-10 16:39:25

标签: javascript arrays object concatenation

我有以下问题将多个对象值连接成一个数组!

我目前的代码:

const coins = [];
Object.keys(prices).forEach((key) => {
    coins.push(prices[key]);
    console.log("prices", prices);
    console.log("prices[key]", prices[key]);
    console.log("coins", coins);
});

输出:

prices { ETH: { USD: 1332.03 }, BTC: { USD: 14602.09 } }
prices[key] { USD: 1332.03 }
coins [ { USD: 1332.03 } ]
prices { ETH: { USD: 1332.03 }, BTC: { USD: 14602.09 } }
prices[key] { USD: 14602.09 }
coins [ { USD: 1332.03 }, { USD: 14602.09 } ]

需要做什么:

coins =  [ 1339.64, 14617.95 ]

我只需要用它们对它们进行数学运算。

2 个答案:

答案 0 :(得分:3)

推送USD属性可以:

coins.push(prices[key].USD);

但你可以做得更好:

Object.values(prices).map(price => price.USD);

答案 1 :(得分:1)

正如评论中所述,推动美元价格而不是整个对象:

const coins = [];
const prices = {
  ETH: {
    USD: 1332.03
  },
  BTC: {
    USD: 14602.09
  }
};
Object.keys(prices).forEach((key) => {
  coins.push(prices[key].USD); /* <- here is the change, add the key of the price */
  console.log("prices", prices);
  console.log("prices[key]", prices[key]);
  console.log("coins", coins);
});