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

Javascript 将字符串数组转换为一个数组JS,javascript,arrays,Javascript,Arrays,我遇到了数组转换的问题。 我有一个具有不同值的数组,如: let fruitsArry = ['apple', 'apple, mango, orange', 'orange']; 我需要将其转换为数组,如: let fruitsArrSplited = ['apple', 'apple', 'mango', 'orange', 'orange']; 你能给我建议一个简单的解决办法吗 提前感谢。只需使用引用部分的分隔符连接和拆分即可 let fruitsArray=['apple','ap

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

let fruitsArry = ['apple', 'apple, mango, orange', 'orange'];
我需要将其转换为数组,如:

let fruitsArrSplited = ['apple', 'apple', 'mango', 'orange', 'orange'];
你能给我建议一个简单的解决办法吗


提前感谢。

只需使用引用部分的分隔符连接和拆分即可

let fruitsArray=['apple','apple','mango,orange','orange'],
结果=果数组.连接(',').split(',');
控制台日志(结果)只需使用
join(',')
split(',')
。并进一步使用
map()
(可选)删除尾随和前导空格。这还将确保数组元素之间可以有任意数量的空白

let fruitsArry=['apple','apple','mango,orange','orange';
var res=fruitsArry.join(',).split(',).map(item=>item.trim());
控制台日志(res)
如果没有生成不必要的中间字符串的
连接(“,”)
,您可以执行以下操作:

var fructsarry=[“苹果”、“苹果、芒果、橙子”、“橙子”],
结果=水果。减少((r,e)=>r.concat(e.includes(“,”)?e.split(/\s*,\s*/)
:e),[]);
控制台日志(结果)
let数组=['apple','apple','mango,orange','orange'];
newArray=array.join(',).split(/\s*,\s*/);

log(newArray)要简单回答您的问题,您可以使用:

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);
请注意,函数中的修剪部分是一个选项,在您的情况下可能不需要它,但我发现这是您可能想要的。

您可以使用js


啊,太美了@Isaac如果数组中逗号之间没有空格该怎么办?请删除
reactjs
flag对于这样一个简单的函数,不需要使用整个库。是的,但是如果需要执行一些复杂的操作,它可能是可选的。那时可能会有帮助。说明你们也可以用其他的方法。若OP的项目中已经有下划线或lodash,那个就太酷了。但是,如果没有它,纯javascript的解决方案也很简单。但在未来,可能会有人使用它。只是要确保其他的可能性是他们在图书馆的帮助下做到这一点。
let fruitsArry = ['apple', 'apple, mango, orange', 'orange'];
var res = _.chain(fruitsArry).map(function(fruit) { return fruit.split(',') }).flatten().value()

console.log(res)