我有一個字串陣列,想根據條件加入字串。因此,如果出現兩個元素,則應該在它們之間添加&。使用array.join我能夠實作。
但是當字串陣列有兩個以上時,一個條件將是最后兩個專案將有&加入
let data1 = ["orange"]
console.log(data1.join(" & ")) // correct
let data2 = ["orange", "apple"]
console.log(data2.join(" & ")) // correct
let data3 = ["orange", "apple", "mango"]
console.log(data3.join(" & ")) // wrong => orange, apple & mango
let data4 = ["orange", "apple", "mango", "guava"]
console.log(data4.join(" & ")) // wrong => orange, apple, mango & guava
如何在加入字串時添加自定義邏輯,我在 data3 和 data4 上添加了預期的字串
uj5u.com熱心網友回復:
你可以做這樣的事情
let data1 = ["orange"]
let data2 = ["orange", "apple"]
let data3 = ["orange", "apple", "mango"]
let data4 = ["orange", "apple", "mango", "guava"]
const formatList = (list) => {
const last = list.pop()
return list.length === 0 ?
last :
[list.join(', '), last].join(' & ')
}
console.log(formatList(data1))
console.log(formatList(data2))
console.log(formatList(data3))
console.log(formatList(data4))
uj5u.com熱心網友回復:
您可以簡單地使用一些這樣的 if 條件。
- 當長度小于或等于 2 時,您可以簡單地加入
" & " - 當長度大于 2 時,取最后兩個元素并用 連接剩余的元素
", ",然后添加 a,然后用" & "
let data1 = ["orange"]
let data2 = ["orange", "apple"]
let data3 = ["orange", "apple", "mango"]
let data4 = ["orange", "apple", "mango", "guava"]
function joiner(arr){
if(arr.length <= 2){
return arr.join(" & ")
} else{
let last = arr.pop()
let secondLast = arr.pop()
return arr.join(", ") ", " secondLast " & " last
}
}
console.log(joiner(data1))
console.log(joiner(data2))
console.log(joiner(data3))
console.log(joiner(data4))
uj5u.com熱心網友回復:
您可以通過創建自己的join函式輕松實作結果:
function join(arr, sep) {
const clone = [...arr];
const last = clone.pop();
return clone.length ? clone.join(', ') sep last : last;
}
function join(arr, sep) {
const clone = [...arr];
const last = clone.pop();
return clone.length ? clone.join(', ') sep last : last;
}
let data1 = ['orange'];
console.log(join(data1, ' & '));
// console.log(data1.join(' & ')); // correct
let data2 = ['orange', 'apple'];
console.log(join(data2, ' & '));
// console.log(data2.join(' & ')); // correct
let data3 = ['orange', 'apple', 'mango'];
console.log(join(data3, ' & '));
// console.log(data3.join(' & ')); // wrong => orange, apple & mango
let data4 = ['orange', 'apple', 'mango', 'guava'];
console.log(join(data4, ' & '));
// console.log(data4.join(' & ')); // wrong => orange, apple, mango & guava
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/395644.html
標籤:javascript
