我有一個這樣的陣列
const arr = ["Apple", "Banana", "Cherry", "Orange", "Avocado", "Ananas", "Pineapple];
我需要一個函式,它回傳與給定字符序列匹配的array所有元素。arr字符的順序很重要。
給定"ppl"函式應該回傳["Apple", "Pineapple"]。
給定"n"函式應該回傳["Banana", "Orange", "Ananas", "Pineapple"]。
給定"voca"函式應該回傳["Avocado"]
給定"rr"函式應該回傳["Cherry"],而給定一個"r"函式應該回傳["Cherry", "Orange"]。
uj5u.com熱心網友回復:
也可以這樣
const arr = ["Apple", "Banana", "Cherry", "Orange", "Avocado", "Ananas", "Pineapple"];
const query = 'pp';
arr.filter(element => element.includes(query));
uj5u.com熱心網友回復:
試試這個
const arr = ["Apple", "Banana", "Cherry", "Orange", "Avocado", "Ananas", "Pineapple"];
const search = query => arr.filter(s => s.toLowerCase().includes(query))
console.log(search("n"))
console.log(search("ppl"))
uj5u.com熱心網友回復:
使用 filter 函式和 indexOf 非常簡單
const arr = ["Apple", "Banana", "Cherry", "Orange", "Avocado", "Ananas", "Pineapple"];
const cond = 'ppl'
console.log(arr.filter(x => x.indexOf(cond) > -1 ))
uj5u.com熱心網友回復:
<script>
function checkPattern(str, pattern) {
var len = pattern.length;
if (str.length < len) {
return false;
}
for (var i = 0; i < len - 1; i ) {
var x = pattern[i];
var y = pattern[i 1];
var last = str.lastIndexOf(x);
var first = str.indexOf(y);
if (last === -1 || first === -1 || last > first) {
return false;
}
}
return true;
}
var str = "engineers rock";
var pattern = "gin";
document.write(checkPattern(str, pattern));
</script>
uj5u.com熱心網友回復:
您可以將Array.prototype.filter()與String.prototype.includes( ) 結合使用:
const result = arr.filter(el => el.includes(input))
代碼:
const arr = ["Apple", "Banana", "Cherry", "Orange", "Avocado", "Ananas", "Pineapple"]
const inputs = ["ppl", "n", "voca", "rr", "r"]
inputs.forEach(input => {
const result = arr.filter(el => el.includes(input))
console.log(`Result for ${input}:`, result)
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/463356.html
標籤:javascript
