簡體   English   中英

將具有一項的數組拆分為具有多項的數組

[英]splitting an array with one item into an array with many items

我有一個返回以下項目的數組:

 ["\\nOnprogress\\nDone"] 

我想將其轉換為一個數組,將此項分為以下兩個項目:

 ["Onprogress" , "Done"] 

我也想刪除不必要的'\\ n'字符,而不要從單詞本身中刪除'n'字符。 如上所示^。 任何想法如何做到這一點?

這是我的代碼:

  addCardtoApp = event => { event.preventDefault(); const card = { taskName: this.taskName.current.value, taskDescription: this.taskDescription.current.value, taskPeriod: this.taskPeriod.current.value, }; const cardStatus = this.taskStatus.current.value; let otherStatus = { otherStatus: this.taskStatus.current.innerText, }; const replacedStatus = otherStatus.otherStatus.replace(`${cardStatus}`, ''); const convertedStatus = replacedStatus.split(" "); const refinedStatus = JSON.stringify(convertedStatus).replace(/↵/, ''); console.log(refinedStatus); this.props.addCard(card, cardStatus, replacedStatus); event.currentTarget.reset(); }; 

提前致謝!

使用Array.flatMap()分割字符串。 然后過濾掉空項目:

 const arr = ["\\nOnprogress\\nDone"] const result = arr .flatMap(str => str.split('\\n')) .filter(Boolean) // or .filter(s => s.length > 0) for the sake of readability console.log(result) 

而且,如果不支持flatMap,則可以使用Array.map() ,spread和Array.concat()

 const arr = ["\\nOnprogress\\nDone"] const result = [].concat(...arr.map(str => str.split('\\n'))) .filter(Boolean) // or .filter(s => s.length > 0) for the sake of readability console.log(result) 

使用splitsplice

 var a=["\\nOnprogress\\nDone"] var arr=a.map(e=>e.split("\\n")[0]==""?e.split("\\n").splice(1):e.split("\\n")) console.log(arr.flat(1)) 

您可以match而不是split然后搜索非換行符。

 console.log("\\nOnprogress\\nDone".match(/[^\\n]+/g)); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM