将字符串数组转换为一个数组JS

时间:2018-06-13 11:20:07

标签: javascript arrays

我遇到阵列转换问题。 我有一个不同值的数组,如:

let fruitsArry = ['apple', 'apple, mango, orange', 'orange'];

我需要将其转换为数组:

let fruitsArrSplited = ['apple', 'apple', 'mango', 'orange', 'orange'];

你能为我建议一个简单的解决方案吗?

提前致谢。

6 个答案:

答案 0 :(得分:4)

只需使用引用部分的分隔符加入并拆分。

let fruitsArray = ['apple', 'apple, mango, orange', 'orange'],
    result = fruitsArray.join(', ').split(', ');
    
console.log(result);

使用逗号后的空格,您可以使用可选的whitepsace进行拆分。

let fruitsArray = ['apple', 'apple, mango, orange', 'orange'],
    result = fruitsArray.join().split(/,\s*/);
    
console.log(result);

答案 1 :(得分:4)

只需使用@Scheduled(fixedRateString="${myRate}") public void getSchedule() { System.out.println("Scheduled job"); } join(',')即可。并进一步使用split(',')(可选)删除尾随和前导空格。这也将确保数组元素之间可以有任意数量的空格。



map()




答案 2 :(得分:1)

如果没有生成不必要的中间字符串的join(" ,"),您可以执行以下操作;



var fruitsArry = ['apple', 'apple, mango, orange', 'orange'],
    result     = fruitsArry.reduce((r,e) => r.concat(e.includes(",") ? e.split(/\s*,\s*/)
                                                                     : e),[]);
console.log(result);




答案 3 :(得分:1)



let array = ['apple', ' apple , mango , orange ', 'orange'];

newArray = array.join(',').split(/\s*,\s*/);
    
console.log(newArray);




我认为这应该可以解决问题。这也将处理每个单词之前和之后的空白区域。

答案 4 :(得分:0)

要回答您的问题,您可以使用:

const af=a=>a.join(',').split(',').map(e=>e.trim()); // 45 character

并使用它:

let res = af(['apple', 'apple, mango, orange', 'orange']);
console.log(res);

或者如果您更喜欢长版:

/**
 * Define the function
 */
function formatArray(arr) {
  let tmp: string[];
  let result: string[] = [];

  tmp = arr.join(',').split(',');

  tmp.forEach((el, i) => {
    let str = el.trim();  // this is to remove the extra spaces
    result.push(str); // add the element to final array
  });
  return result;
}

并将其用作:

// The orignal array
let arr = ['apple', 'apple, mango, orange', 'orange'];
arr = formatArray(arr);
console.log(arr);

请注意,在您的情况下修剪部分功能是您可能不需要的选项,但我发现这是您可能想要的。

答案 5 :(得分:0)

您可以使用_js。 Underscore Js Documentation

let fruitsArry = ['apple', 'apple, mango, orange', 'orange'];
var res = _.chain(fruitsArry).map(function(fruit) { return fruit.split(',') }).flatten().value()

console.log(res)