[英]count values in each object of array
对不起,我刚刚改变了这个问题:我想知道我的数组中有多少次“orange”这个词。 在本例中,“橙色”> 4 次。
MyArray = [{
fruit1: "Orange is blabla",
fruit2: "Apple blabla",
fruit3: "blabla Banana",
color1: "ORANGE"
}, {
fruit4: "blabla Orange",
fruit5: "Apple",
fruit6: "Banana",
color2: "orange blabla"
}];
var newArr = MyArray.filter(function (item) {
return _.values(item.xxx === "orange";
});
您可以通过以下方式进行
let MyArray = [{fruit1:"Orange", fruit2:"Apple", fruit3:"Banana", color1:"ORANGE"},{fruit4:"Orange", fruit5:"Apple", fruit6:"Banana", color2:"orange"}]; let result = MyArray.reduce((a, b) => { for(let key of Object.keys(b)){ let re = /orange/gi; if(b[key].match(re) != null){ a++; } } return a; }, 0); console.log(result);
MyArray = [{ fruit1: "Orange is blabla", fruit2: "Apple blabla", fruit3: "blabla Banana", color1: "ORANGE" }, { fruit4: "blabla Orange", fruit5: "Apple", fruit6: "Banana", color2: "orange blabla" }]; var totalOrange = 0; MyArray.map(function(item) { for (var key in item) { if (item[key].toLowerCase().indexOf('orange') >= 0) { totalOrange++; } } }); console.log(totalOrange);
你可以这样做: -
const count = MyArray.reduce((count,item)=>{
Object.keys(item).forEach((val)=>{
if(item[val].toLowerCase().indexOf('orange') != -1){
count++;
}
})
return count
},0)
使用 ES6,您可以使用扩展语法...
和Object.values
来做到这一点。
var MyArray = [{ fruit1: "Orange is blabla", fruit2: "Apple blabla", fruit3: "blabla Banana", color1: "ORANGE" }, { fruit4: "blabla Orange", fruit5: "Apple", fruit6: "Banana", color2: "orange blabla" }] var count = [].concat(...MyArray.map(Object.values)) .filter(e => e.toLowerCase().includes('orange')) .length; console.log(count)
我想这样的事情可能会奏效。 您可以在一个大循环中完成它以使其稍微快一点,但这种形式更易读恕我直言。
const amountOfOranges = MyArray
// transform each object into an array of its values
.map( Object.values )
// remove all values not named 'orange'
.map( ary => ary.filter( value => value === 'orange' ) )
// replace all arrays by their length
.map( ary => ary.length )
// sum the results
.reduce( ( x, y ) => x + y, 0 );
var MyArray = [{fruit1:"Orange", fruit2:"Apple", fruit3:"Banana", color1:"ORANGE"},{fruit4:"Orange", fruit5:"Apple", fruit6:"Banana", color2:"orange"}];
var count = 0;
MyArray.map(function(item,index){
Object.keys(item).map(function(key){
if(item[key].toLowerCase().indexOf('orange') >= 0){
count++;
}
});
});
console.log(count);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.