У меня есть следующий массив строк JavaScript:
arrayOfString = ['a', 'b,c', 'd,e', 'f'];
И я хотел бы преобразовать этот массив в массив, подобный следующему:
myString = ["a", "b", "c", "d", "e", "f"];
Как мне это сделать?
Вы можете использовать flatMap() и split()
flatMap()
split()
let arrayOfString = ['a', 'b,c', 'd,e','f']; let res = arrayOfString.flatMap(x => x.split(',')) console.log(res)
Если flatMap() не поддерживается вашим браузером, используйте map() concat() и оператор распространения. Передайте результат map() в concat(), используя оператор распространения.
map()
concat()
let arrayOfString = ['a', 'b,c', 'd,e','f']; let res = [].concat(...arrayOfString.map(x => x.split(','))) console.log(res)
Использование join() и split()
join()
Примечание: Разделителем по умолчанию join() является comma (,)
comma (,)
const arrayOfString = ['a', 'b,c', 'd,e', 'f'] const myString = arrayOfString.join().split(',') console.log(myString)
Используйте map с split, reduce и concat:
map
split
reduce
concat
const arrayOfString = ['a', 'b,c', 'd,e', 'f']; const myString = arrayOfString.map(e => e.split(",")).reduce((acc, curr) => acc.concat(curr)); console.log(myString);
Пояснение:
Используйте map для перебора массива, затем split для каждой буквы, затем используйте reduce и concat в качестве хорошо поддерживаемых методов, чтобы сгладить результирующий многомерный массив и, наконец, присвоить результат myString.
myString
вы можете использовать оператор спреда, карту и сплит
let arr = []; let input = ['a', 'b,c', 'd,e', 'f']; input.map(obj => arr = [...arr,...obj.split(",")]) console.log(arr);