子集数组由另一个数组Javascript

时间:2011-11-15 06:00:05

标签: javascript arrays subset

我是javascript的新手并且有一个简单的任务。我有一个数组“值”和第二个数组“性别”,我想创建一个第三个数组,其中“值”,性别==“男性”。变量看起来像这样:

var values = new Array();
values[0] = .1
values[1] = .3
values [2] = .7
values[3] = .8
var gender = new Array();
gender[0]='Males'
gender[1]='Males'
gender[2]='Females'
gender[3]='Females'

python中的等价语法是:

female_values = values[gender=='Females']

有什么想法?

2 个答案:

答案 0 :(得分:2)

var values = [.1, .3, .7, .8];
var gender = ['Males', 'Males', 'Females', 'Females'];

var males = [];
for (var i = 0; i < values.length; i++) {
  if (gender[i] == 'Males') {
    males.push(values[i]);
  }
}

通常不使用Array构造函数,而是使用数组文字[]。然后简单地遍历数组并将值推送到第三个数组,如果您设置的某些条件通过。


是的,这比python更痛苦,虽然coffee script can make it a little nicer

答案 1 :(得分:0)

更好的方式

var values = [.1, .3, .7, .8],
    gender = ['Males', 'Males', 'Females', 'Females'],
    males  = [],
    i      = values.length;

while ( i-- ) {
    gender[i] == 'Males' && males.unshift(values[i])
}