JS数组重新一一组合?有点说不清,来看代码哈~

发布于 2022-09-04 09:31:53 字数 238 浏览 7 评论 0

例如,我有一个数组:

[
  [a, b],
  [1, 2],
  [一, 二]
]

现在要的结果:

[
  [a, 1, 一],
  [a, 1, 二],
  [a, 2, 一],
  [a, 2, 二],
  [b, 1, 一],
  [b, 1, 二],
  [b, 2, 一],
  [b, 2, 二]
]

该如何实现?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

思慕 2022-09-11 09:31:53
function doSomething(arr) {
        var len = arr.length;
        if (len >= 2) {
            var len1 = arr[0].length;
            var len2 = arr[1].length;
            var newlen = len1 * len2;
            var temp = new Array(newlen);
            var index = 0;
            for (var i = 0; i < len1; i++) {
                for (var j = 0; j < len2; j++) {
                    temp[index] = (arr[0][i] + ',' +
                        arr[1][j]).split(',');
                    index++;
                }
            }
            var newArray = new Array(len - 1);
            for (var i = 2; i < len; i++) {
                newArray[i - 1] = arr[i];
            }
            newArray[0] = temp;
            return doSomething(newArray);
        } else {
            return arr;
        }
    }
红颜悴 2022-09-11 09:31:53
let res=[];
    let k=0;
for(let i in a){
    for (let j in a[i]){
    res[k].push(a[i][j]);
    k++;    
    }
}
梦行七里 2022-09-11 09:31:53
var data = [
    ['a', 'b'],
    [1, 2],
    ['一', '二']
]

function combineData(cur, index) {
    if (index >= data.length) {
        return [cur]
    }
    var value = data[index];
    return value.reduce(function(r, v) {
        var row = [].concat(cur);
        row.push(v);
        return r.concat(combineData(row, index + 1))
    }, [])
}


console.log(JSON.stringify(combineData([], 0)))
[["a",1,"一"],["a",1,"二"],["a",2,"一"],["a",2,"二"],["b",1,"一"],["b",1,"二"],["b",2,"一"],["b",2,"二"]]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文