Trim 数组的数组 (Javascript)

Trim an array of an arrays (Javascript)

我知道如何通过 map() 方法 trim 数组中的所有字符串(感谢 this article!

let a = [' a ', ' b ', ' c '];

let b = a.map(element => {
  return element.trim();
});

console.log(b); // ['a', 'b', 'c']

但我想知道如何 trim 一个数组数组?

例如let x = [[" a ", " b "], [" c ", " d "]]

谢谢!

P.S:我正在学习Javascript。

您也可以映射嵌套数组。

let data = [[" a ", " b "], [" c ", " d "]]

const result = data.map((d) => d.map((y) => y.trim()));

console.log(result);

如果你想把结果拉平,你可以使用flatMap()

let data = [[" a ", " b "], [" c ", " d "]]

const result = data.flatMap((d) => d.map((y) => y.trim()));

console.log(result);

除了已经提供的解决方案之外,如果您有 n 层嵌套数组并且想要 trim 字符串而不展平数组,您可以这样做它递归如下。

let arr = [
  [" a ", " b "],
  [" c ", " d ", ["  e", "f "]]
]

function trimRecursively(arr) {
  return arr.map(x => {
    if (Array.isArray(x)) {
      return trimRecursively(x);
    } else {
      return x.trim();
    }
  })
}

console.log(trimRecursively(arr));