考虑以下情形;
var defaultArr = ['a', 'b', 'c', 'd'];
var availArr = [];
var selectedArr = [];
如果我index
在参数中传递数组一些值,则需要拆分数组的值
例:
如果数组索引: 0,2
预期结果:
availArr = ['b', 'd'];
selectedArr = ['a', 'c'];
是否有任何默认方法来实现这一目标?
容易失败 Array.reduce
var defaultArr = ['a', 'b', 'c', 'd'];
var indexes = [0,2];
var result = defaultArr.reduce(function(p, c, i){
if(indexes.indexOf(i)>-1)
p.selectedArr.push(c);
else
p.availArr.push(c);
return p;
}, {availArr: [], selectedArr:[]});;
console.log('availArr',result.availArr);
console.log('selectedArr',result.selectedArr);
这是有效的,因为reduce
需要一个回调参数,该参数传递了3个参数-在上面的示例中
p
种子对象传入c
当前数组元素 i
当前元素的索引并使用该信息indexOf
来确定要推送到哪个结果数组。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句