lodash;替换并合并两个字符串数组

时间:2015-04-13 20:08:13

标签: javascript arrays merge lodash

lodash中是否有任何函数可以合并两个数组;

var arr_1 = ['1', '0', '1'], arr_2 = ['0', '1', '1'];

结果应该返回:

console.log(new_arr); // ['0', '0', '1']

更新

每个数组都有3个元素(字符串)。只要在两个数组中的任何一个中找到'0',它就必须保留在结果中。

2 个答案:

答案 0 :(得分:0)

这个怎么样:

ES5:

_.map(_.zip(arr_1,arr_2), function(values) { 
      return values[0] <= values[1] ? values[0] : values[1]; 
})

ES6 :(更好的方式)

_.zip(arr_1,arr_2).map( v => v[0] <= v[1] ? v[0] : v[1] ); 

它不仅仅是一种方法,而是使用lodash zip

答案 1 :(得分:0)

以下内容可以满足您的需求。它使用flatten()创建一个数组,并从那里reduce()创建一个新数组,其中包含&#39; 0&#39;允许重复,删除所有其他重复项。

_([arr_1, arr_2])
    .flatten()
    .reduce(function(result, item) {
        if (item === '0' || !_.includes(result, item)) { 
            result.push(item);
        }
        return result; 
    }, []);