[英]javascript - removing an array element
我將偽代碼開始:
array = copper, oil, silver, bronze, gold, iron
user inputs the letter 'l'
if (the input has the letter 'l', remove everything from the array except words with 'l') {
output = copper, bronze, iron
我的代碼:
//arr = iron, oil, gold, silver, bronze
classDiv = document.getElementsByClassName("searchOutputName");
for(var i = 0; i < arr.length; i++){
market = arr[i];
var n = market.indexOf(userInput.value);
if (n >= 0) {
classDiv[i].appendChild(document.createTextNode(arr[i]));
}
else {
//do nothing
}
我的搜索功能有5個div框。
如果用戶輸入'l',則第一個框是空的,然后是油,金,銀,然后是另一個空盒子。 我想讓它們堆疊起來......第一個盒子里有油,然后是金色,然后是銀色,然后是2個空盒子。
你也可以使用過濾器的javascript:
var arr = ["copper", "oil", "silver", "bronze", "gold", "iron"];
arr = arr.filter(function(item){ return item.indexOf('l')>=0;});
console.log(arr);
雖然我沒有在你的代碼中加入html,但我已經設法用JS做了,可以重新設計以滿足你的需要。
var arr = ["copper", "oil", "silver", "bronze", "gold", "iron"];
for (var i = 0; i < arr.length; i++) {
if (arr[i].indexOf('l') !== -1) {
arr.splice(i, 1); // Remove the element from array
i = i - 1; // Equalize to manage the removed array length
}
}
console.log(arr); //returns ["copper", "bronze", "iron"]
聽起來你只想按照與用戶輸入匹配的元素對數組進行排序。 這樣的事怎么樣?
var text = 'l', t = ['iron', 'oil', 'gold', 'silver', 'bronze']
t.sort(function(a, b) { return a.indexOf(text) < b.indexOf(text) })
// => ["oil", "gold", "silver", "iron", "bronze"]
這是您應該使用的代碼。 它有效,與其他有錯誤的答案相反。
function filter(items, criteria)
{
var i, result;
result = [];
for (i = 0; i < items.length; i++)
{
if (items[i].indexOf('l') !== -1)
{
result.push(items[i]);
}
}
return result;
}
您可以按照以下方式過濾條件:
// market = [ 'copper', 'oil', 'silver', 'bronze', 'gold', 'iron' ];
// userInput = '1';
subset = filter(market, userInput);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.