有一个名为dataArray
的数组,我需要使用其他条件将其分开。我使用grep
生成了一个新的colorGroup1
。
var colorGroup1 = $.grep(dataArray, function(item,key){
var vote_percentage = parseInt(item.vote_percentage);
var result = vote_percentage>=0 && vote_percentage <25;
return result;
});
但是我有很多colorGroup
,但条件不同。如果使用grep,则需要多次操作。像这样↓
var colorGroup2 = $.grep(dataArray, function(item,key){
var vote_percentage = parseInt(item.vote_percentage);
var result = vote_percentage>=25 && vote_percentage <50;
return result;
});
var colorGroup3 = $.grep(dataArray, function(item,key){
var vote_percentage = parseInt(item.vote_percentage);
var result = vote_percentage>=50 && vote_percentage <75;
return result;
});
//.......and so on.......
是否有任何方法只能生成一次数组?
答案 0 :(得分:2)
您可以使用内置的$.grep
而不是使用.reduce
将输入数组中的项目分类为所需的部分。例如:
const colorGroups = dataArray.reduce((a, item) => {
const groupIndex = Math.floor(item.vote_percentage / 25);
a[groupIndex].push(item);
return a;
}, [[], [], [], []]);
然后colorGroups
将是colorGroups
的数组。 (例如,colorGroups[0]
等效于名为colorGroup1
的原始变量。)
包含每个colorGroup
的单个数组(或对象)可能比具有多个独立变量更合适,但是如果您确实需要独立变量,则可以对结果进行结构分解:
const [colorGroup1, colorGroup2, colorGroup3, colorGroup4] =
dataArray.reduce((a, item) => {
const groupIndex = Math.floor(item.vote_percentage / 25);
a[groupIndex].push(item);
return a;
}, [[], [], [], []]);
答案 1 :(得分:0)
只需将Languages::getLangCode()
与$.each
一起使用,如下所示:
dataArray