在Javascript中一次组合两个字符串数组

时间:2017-06-20 16:21:53

标签: javascript arrays

我有一个字符串数组,我可以用下划线分隔两个元素的组合。

var array = ['a', 'b', 'c'];输出应为['a_b', 'a_c', 'b_c']

我如何在Javascript中执行此操作?

请注意,这与Permutations in JavaScript?不同,因为我们需要两个组合,并且无法复制数组元素。

感谢。

3 个答案:

答案 0 :(得分:2)

您可以使用嵌套循环来实现类似的功能:



var arr = ['a', 'b', 'c'];
var newArr = [];
    
for (var i=0; i < arr.length-1; i++) {        //Loop through each item in the array
    for (var j=i+1; j < arr.length; j++) {    //Loop through each item after it
        newArr.push(arr[i] + '_' + arr[j]);   //Append them
    }
}
    
console.log(newArr);
&#13;
&#13;
&#13;

我已经选择将此标记为社区帖子,因为我认为一个不显示任何尝试的问题不应该是个人声誉。

答案 1 :(得分:1)

解决方案可能是:

function combine(arr) {

    if (arr.length === 1) {
        return arr; // end of chain, just return the array
    }

    var result = [];

    for (var i = 0; i < arr.length; i++) {
        var element = arr[i] + "_";
        for (var j = i+1; j < arr.length; j++) {
            result.push(element + arr[j]);
        }
    }
    return result;
}

答案 2 :(得分:0)

这应该是双倍的,像这样:

var output = [];
var array = ['a', 'b', 'c'];
    for(var i = 0; i < array.length; i++){
        for(var j = 0; j < array.length; j++) {
           output.push(array[i] + "_" + array[j]);
        }
    }

输出结果为:

["a_a", "a_b", "a_c", "b_a", "b_b", "b_c", "c_a", "c_b", "c_c"]