else if(input === 'remove'){
let search = prompt('what index do you want to remove');
for(let j=0;j<todos.length;j ){
console.log(`current data is:${todos[j]}`);
if(todos[j] === search){
console.log(`data to be delete is present`)
todos.splice(todos[j],1);
console.log(`data deleted is ${todos[j]}`)
}
}
如果 todos 包含 [task1, abc, def]
我的輸出是:
當前資料是:task1
當前資料為:abc
當前資料是:def
要洗掉的資料存在
洗掉的資料未定義
如何從串列 todos[] 中洗掉元素 todos[j]
uj5u.com熱心網友回復:
你可以filter()去掉不需要的元素
const todos = [ 'bla', 'ble', 'bli', 'foo', 'blo', 'blu', 'bly' ];
const search = 'foo';
const filtered = todos.filter(elem => elem !== search);
console.log(filtered);
注意原始陣列將保持不變
uj5u.com熱心網友回復:
search = "def";
let todo = ["task1", "abc", "eyg7eg", "ugfuegf7uegf", "def"];
todo.forEach(function (elem, i = 0) {
if (elem === search) todo.splice(i, 1);
i ;
});
用于每個迭代整個陣列以找到所需元素,然后如果 element === search 為真,則使用 splice 洗掉該元素
uj5u.com熱心網友回復:
您可以使用過濾器方法
const todos = [ 'bla', 'ble', 'bli', 'foo', 'blo', 'blu', 'bly' ];
const search = 'foo';
假設上面是你的todo,以及你想從todo中洗掉的搜索項
todos.filter(
(tod)=> tod !=search
)
filter 方法回傳一個陣列,因此您可以將它存盤在一個變數中。詳細了解過濾器方法filterVideo
過濾檔案
uj5u.com熱心網友回復:
您的代碼有兩個問題:
- 它沒有洗掉正確的元素(你應該做 splice(j,1),而不是 splice(todos[j],1)
- 它試圖在已洗掉元素后獲取已洗掉元素的值。
修復這些 2 件事,您的代碼作業正常,就像這樣:
let todos = ['task1', 'abc', 'def'];
let search = prompt('what index do you want to remove');
for(let j=0;j<todos.length;j ){
let currentData = todos[j];
console.log(`current data is:${currentData}`);
if(todos[j] === search){
console.log(`data to be delete is ${search}`)
currentData = todos.splice(j,1);
console.log(`data deleted was ${currentData}`)
}
}
例如,搜索 'abc' 的 CONSOLE EXIT:
current data is:task1
current data is:abc
data to be delete is abc
data deleted was abc
在這里,我給您留下了一份您自己的代碼的作業副本,其中包含所有修復程式。
作為一個Extra,我給出了一個不同的版本“混合”了其他幾個伙伴的答案:
const todos = ['task1', 'abc', 'def'];;
const search = 'abc';
todos.some(
(item, index) => { if (item === search) { todos.splice(index, 1); return true;} }
);
console.log(todos);
uj5u.com熱心網友回復:
你可以像這樣達到同樣的效果,
else if(input === 'remove'){
let search = prompt('what index do you want to remove');
const index = todos.indexOf(search);
if(index === -1){
console.log(`data not found`);
}else{
todos.splice(index,1);
console.log(`data deleted is ${search}`);
}
}
uj5u.com熱心網友回復:
var todos=["a1","a2","a3","a4"];
let search = prompt('what index do you want to remove');
console.warn("BEFORE")
console.warn(todos)
for(let j=0;j<todos.length;j ){
console.log(`current data is:${todos[j]}`);
if(todos[j] === search){
console.log(`data to be delete is present`)
todos.splice(j,1);
console.log(`data deleted is ${search}`)
}
}
console.warn("AFTER")
console.warn(todos)
您可以運行上面的代碼,或者只需更改您的 for 回圈
for(let j=0;j<todos.length;j ){
console.log(`current data is:${todos[j]}`);
if(todos[j] === search){
console.log(`data to be delete is present`)
todos.splice(j,1);
console.log(`data deleted is ${search}`)
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/392457.html
標籤:javascript
下一篇:如何從輸入名稱和值對創建JSON
