在数组 JS 中多次使用 trim

Using trim more than once in an array JS

我有一段代码,我试图将一个较长的带有特殊字符的字符串解析为一个没有空格或特殊字符的数组。
输入:name:这是一些东西,name2:这是更多的东西
期望的输出:[name,这是一些东西,name2,这是更多的东西]
当前输出:z.trim 不是函数

function parseOrder(custOrder) {
  const custOrderArr = custOrder.split(','); 
  const trimedArr = custOrderArr.map((x) => x.trim());
  const numberArr = trimedArr.map((y) => y.split(':'));
  const processArr = numberArr.map((z) => z.trim());
  console.log(processArr);
}

为什么 trim 第一次有效而不是第二次?

你不能trim数组。但是您可以映射数组和 trim 值。

此结果的特点是 Array#flatMap 用于防止数组成对。

function parseOrder(custOrder) {
    return custOrder
        .split(',')
        .flatMap(y => y.split(':').map(x => x.trim()));
}


var input = 'name: this is some stuff, name2: this is more stuff ';

console.log(parseOrder(input));

尝试split两个符号,然后trim你的元素:

const result = str.split(/[\:,]+/).map(s => s.trim());

一个例子:

let str = 'test: It is me, test2: it is me 2 ';
console.log(str.split(/[\:,]+/).map(s => s.trim()));