ฉันมีอาร์เรย์ JavaScript เช่น:
[["$6"], ["$12"], ["$25"], ["$25"], ["$18"], ["$22"], ["$10"]]
ฉันจะไปเกี่ยวกับการรวมอาร์เรย์ภายในแยกกันเป็นหนึ่งเช่น:
["$6", "$12", "$25", ...]
reduce
+ concat
คือ O ((N ^ 2) / 2) ซึ่งเป็นคำตอบที่ยอมรับได้ (เพียงหนึ่งสายที่โทรไปconcat
) จะมากที่สุด O (N * 2) บนเบราว์เซอร์ที่ไม่ดีและ O (N) บน สิ่งที่ดี. นอกจากนี้ยังมีวิธีการแก้ปัญหา Denys เหมาะสำหรับคำถามที่เกิดขึ้นจริงและไม่เกิน 2 concat
เท่าเร็วกว่าเดียว สำหรับreduce
คนที่สนุกกับการเขียนโค้ดเล็ก ๆ น้อย ๆ แต่ตัวอย่างเช่นถ้าอาร์เรย์มีองค์ประกอบย่อย 1,000 รายการย่อยหนึ่งโซลูชั่นลด + concat ทั้งหมดจะทำการ500500 การดำเนินการโดยที่การเชื่อมโยงเดี่ยวหรือการวนรอบง่ายจะดำเนินการ 1,000 ครั้ง
[].concat(...array)