JavaScript数组映射

兰吉斯

考虑以下情形;

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章