我有一个像这样的数组:
peoples = ['dick', 'jane', 'harry', 'debra', 'hank', 'frank' .... ]
一个包含这样的键:
keys = [1, 6, 3, 12 .... ]
现在我可以写这样的东西:
var peoplesStripedOfKeyPostions = [];
for(i = 0; i < peoples.length; i++){
for(j = 0; j < keys.length; j++){
if( i !== keys[j]){
peoplesStripedOfKeyPostions.push( peoples[i] );
}
}
}
如果您不知道,我需要生成一个人员数组,其中删除了数组键中定义的某些位置的人员。我知道必须有一种巧妙而有效的方法来做到这一点,但我当然想不到。 (数组管理不是我的强项)。
您知道更好的方法吗? (如果我得到多个有效答案,jsperf 将确定获胜者。)
people.filter(function(x,i){return badIndices.indexOf(i)==-1})
如果badIndices
数组很大。一个更有效(尽管不太优雅)的版本是:
var isBadIndex = {};
badIndices.forEach(function(k){isBadIndex[k]=true});
people.filter(function(x,i){return !isBadIndex[i]})
(注意:您不能使用名为的变量keys
因为这是一个内置函数)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)