首页 > 解决方案 > Excel Office 脚本 - 尝试推送 2D 数组时出错

问题描述

我在理解上遇到了问题,我会尽量对我的问题进行基本处理,因为它涉及大量数据。这是一个简单的模型。

在下面的 myArray 中,我正在尝试以 [[element],[element],[element]] 的形式创建一个新的二维数组 (arrayFinal),以便能够将 setValues() 与 Excel Office 脚本一起使用。在此示例中,每个元素应包含 2 个以上的元素。

但我真的不会以我的方式去任何地方。

我只得到一个返回,有太多 [[[]]] (一个太多),并且只有最后一个元素重复。

[[[1,5,7]],[[1,5,7]],[[1,5,7]],[[1,5,7]],[[1,5,7]] ,[[1,5,7]]]

你能看看并告诉我有什么问题吗?

let myArray: number[][] = [[1, 2, 3], [2, 4], [5, 6, 7],[1],[2,3],[1,5,7]];

let testArray: (string | boolean | number)[][] = []; 
let arrayFinal: (string | boolean | number)[][] = []; 


myArray.map(x => {
    testArray.length = 0;
    if (x.length > 2) {

       
            testArray.push(x);

       
    }
    arrayFinal.push(testArray);
})
console.log(JSON.stringify(arrayFinal))

谢谢 !

标签: javascript

解决方案


如果我理解正确,您正在尝试过滤原始二维数组以仅包含具有超过 2 个元素的子数组,对吗?

想知道你是否想尝试这样的事情:

let myArray: number[][] = [[1, 2, 3], [2, 4], [5, 6, 7],[1],[2,3],[1,5,7]];
let arrayFinal = myArray.filter(arr => arr.length > 2);
console.log(JSON.stringify(arrayFinal))

输出应该是:

[[1,2,3],[5,6,7],[1,5,7]]

推荐阅读