![](/img/trans.png)
[英]Loop through array within an object and push to a new array in 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.