提问人:TraktorJack 提问时间:5/5/2021 最后编辑:marc_sTraktorJack 更新时间:6/6/2021 访问量:1117
为什么 findIndex() 返回 0,而不是所需的索引?
Why does findIndex() return 0, instead of the desired index?
问:
我一直在试图弄清楚如何检索所需的索引。我有一个用户将姓名添加到访客列表,并可以选择删除姓名。所有名称都附加到保存到 localStorage 的数组中。单击删除按钮时,我想遍历数组,找到匹配的字符串并检索其索引。然而,如果字符串不匹配,我得到的只是 -1,如果匹配,则为 0。我的错误在哪里?任何帮助都是值得赞赏的。
deleteBtn.addEventListener('click', function () { // Makes the Delete button active.
const deleteName = this.parentElement.innerText; // parent element is li
const test = localStorage.getItem('data');
const testParsed = JSON.parse(test);
for (let i = 0; i < testParsed.length; i++) {
let compare = `Name: ${testParsed[i].name}, About: ${testParsed[i].about}Delete entry`; // matches innerHtml of deleteName
compare.replace('.,:', ''); // Removes unwanted punctuation
console.log('Compare: ', compare);
function index(){
return deleteName === compare;
}
console.log(testParsed.findIndex(index));
答:
0赞
TraktorJack
5/5/2021
#1
我又玩了一会儿,想通了。我会把这个问题留出来,以防其他人可以利用它。
deleteBtn.addEventListener('click', function () { // Makes the Delete button active.
const deleteName = this.parentElement.innerText; // parent element is li
const test = localStorage.getItem('data');
const testParsed = JSON.parse(test);
console.log(test);
for (let i = 0; i < testParsed.length; i++) {
let compare = `Name: ${testParsed[i].name}, About: ${testParsed[i].about}Delete entry`; // matches innerHtml of deleteName
compare.replace('.,:', ''); // Removes unwanted punctuation
console.log('Compare: ', compare);
if(deleteName === compare) {
function index(equals) { // compare is string, equals is object
return equals.name === testParsed[i].name && equals.about === testParsed[i].about;
}
console.log(testParsed.findIndex(index));
}
评论
compare.replace()
compare
function index(deleteName){ ... }
deleteName
item
entry
text