我遇到阵列转换问题。 我有一个不同值的数组,如:
let fruitsArry = ['apple', 'apple, mango, orange', 'orange'];
我需要将其转换为数组:
let fruitsArrSplited = ['apple', 'apple', 'mango', 'orange', 'orange'];
你能为我建议一个简单的解决方案吗?
提前致谢。
答案 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)