繁体   English   中英

遍历 object 并将其推入新数组 JavaScript

[英]Loop through object and push it into new array JavaScript

我想问一下这个算法的JavaScript代码,假设我有一辆object的汽车:

var cars = {
  'civic' : {
    'color' : 'blue',
    'year' : '2020'
  },
  'supra' : {
    'color' : 'red',
    'year' : '2019'
  },
  'impala' : {
    'color' : 'black',
    'year' : '1967'
  },
  'fake_civic' : {
    'color' : 'blue',
    'year' : '2020'
  },
  'fake_supra' : {
    'color' : 'red',
    'year' : '2019'
  },
  'fake_impala' : {
    'color' : 'black',
    'year' : '1967'
  },
}

我想将假的提取到一个对象数组中,所以它看起来像这样

fakeCars = [
  {'fake_civic' : {
    'color' : 'blue',
    'year' : '2020'
    }
  },
  {'fake_supra' : {
    'color' : 'red',
    'year' : '2019'
    }
  },
  {'fake_impala' : {
    'color' : 'black',
    'year' : '1967'
    }
  },
];

我试过这个

fakeCars = Object.entries(cars).map((e) => ( { [e[0]]: e[1] } ));

但它返回整车的数组 object,我不知道如何搜索假货,我该如何解决? 谢谢你。

为此,我会使用.filter()作为:

 var cars = { 'civic': { 'color': 'blue', 'year': '2020' }, 'supra': { 'color': 'red', 'year': '2019' }, 'impala': { 'color': 'black', 'year': '1967' }, 'fake_civic': { 'color': 'blue', 'year': '2020' }, 'fake_supra': { 'color': 'red', 'year': '2019' }, 'fake_impala': { 'color': 'black', 'year': '1967' }, } const result = Object.entries(cars).filter(e => e[0].includes('fake')); console.log(result);

 const cars = { 'civic': { 'color': 'blue', 'year': '2020' }, 'supra': { 'color': 'red', 'year': '2019' }, 'impala': { 'color': 'black', 'year': '1967' }, 'fake_civic': { 'color': 'blue', 'year': '2020' }, 'fake_supra': { 'color': 'red', 'year': '2019' }, 'fake_impala': { 'color': 'black', 'year': '1967' }, } const fakeCars = Object.keys(cars).reduce((acc, rec) => { return (rec.indexOf('fake') > -1)? [...acc, { [rec]: cars[rec] }]: acc }, []) console.log(fakeCars)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM