[英]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)
使用split
和splice
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.