我有一個字串陣列。此陣列中的某些字串具有豎線字符。我想用“|”分割字串 并將所有唯一值存盤到一個新陣列中。
在不使用性能不佳的回圈的情況下,獲取包含所有拆分值的臨時陣列的有效方法是什么?
一旦我有了包含所有拆分值的臨時陣列,我計劃洗掉所有重復項,如下所示: var result = [...new Set(result)]
var arr = ["A|B|C","B|A","E|A|D","F"]
// result does not have to be sorted
var expectedResult = ["A","B","C","D","E","F"]
uj5u.com熱心網友回復:
使用flatMap()andsplit()獲取單個陣列,并使用 aSet保留唯一元素:
const array = ["A|B|C","B|A","E|A|D","F"];
const result = [...new Set(array.flatMap(v => v.split('|')))];
console.log(result);
uj5u.com熱心網友回復:
.join('|')陣列作為一個字串,所有字母之間有管道,然后.split('|')通過管道,然后洗掉欺騙Set()
let data = ["A|B|C", "B|A", "E|A|D", "F"];
console.log([...new Set(data.join('|').split('|'))]);
uj5u.com熱心網友回復:
我會去
const result = arr.map(item => item.split("|")).flat();
const deduped = [...new Set(result)]
uj5u.com熱心網友回復:
另一種選擇:
const inputArray = ["A|B|C","B|A","E|A|D","F"];
const result = inputArray.reduce((acc, value) => acc.push(...value.split('|')) && acc, []);
console.log(result);
uj5u.com熱心網友回復:
const splitSet = (arr) => {
const set = new Set();
for(const item of arr) {
const splited = item.split("|");
for(const piece of splited) {
set.add(piece);
}
}
return Array.from(set);
}
splitSet(arr); //result
uj5u.com熱心網友回復:
我首先想到的是這個
const arr = ["A|B|C","B|A","E|A|D","F"];
const flatArr = arr.join('|').split('|');
const expectedResult = [...new Set(flatArr)];
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/491304.html
標籤:javascript
下一篇:更改vue組件中的資料值
