Javascript 展开按逗号拆分的数组元素
假设我有以下数组:Javascript 展开按逗号拆分的数组元素,javascript,arrays,Javascript,Arrays,假设我有以下数组: const arr = [ 'a,b,c', 'd,e,f', 'g,h,i' ]; 我想去 [ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i' ] 我目前正在使用reduce 但是我想知道是否有更好的方法来做到这一点。您可以使用.join()和.split()方法: const arr=['a,b,c','d,e,f','g,h,i']; const result=arr.join().split(“,”); 控制台日志(结果)
const arr = [ 'a,b,c', 'd,e,f', 'g,h,i' ];
我想去
[ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i' ]
我目前正在使用reduce
但是我想知道是否有更好的方法来做到这一点。您可以使用.join()
和.split()
方法:
const arr=['a,b,c','d,e,f','g,h,i'];
const result=arr.join().split(“,”);
控制台日志(结果)代码>
。作为控制台包装{max height:100%!important;top:0;}
您不需要使用reduce,只需使用join(',')
和split(',')
:
const arr=['a,b,c','d,e,f','g,h,i'];
var res=arr.join(',').split(',');
控制台日志(res)
使用reduce方法和split
以逗号分隔字符串
设m=['a,b,c','d,e,f','g,h,i'];
设x=m.reduce(函数(acc,curr){
附件推送(…当前拆分(','))
返回acc;
}, [])
console.log(x)
简单地concat
分割的子阵列
const arr=['a,b,c','d,e,f','g,h,i'];
console.log([].concat(…arr.map(a=>a.split(',')))
在未来的js版本中,它将arr.flatMap(el=>el.split(“,”))
Nice@Jonaswillms谢谢你提供的信息。是的,我认为这是最好的解决方案。我还提出了一个使用push的版本,但忽略了初始值arg,这大大简化了它。我将接受您的答案。基于您的答案,我的最终版本是arr.reduce((a,c)=>(a.push(…c.split(',')),a),[])
为什么不arr.reduce((acc,el)=>acc.concat(el.split(,”)
?因为concat不需要创建数组的副本。
arr.reduce((a,c) => (typeof a == 'object' ? a : a.split(',')).concat(c.split(',')));