Javascript 为什么findIndex()返回0而不是所需的索引?
我一直在试图找出如何检索所需的索引。我有一个用户向访客列表中添加姓名,并可以选择删除姓名。所有名称都附加到保存到localStorage的数组中。单击delete按钮时,我希望遍历数组,找到匹配的字符串并检索其索引。但是,如果字符串不匹配,则得到-1,如果匹配,则得到0。我的错误在哪里?感谢您的帮助Javascript 为什么findIndex()返回0而不是所需的索引?,javascript,Javascript,我一直在试图找出如何检索所需的索引。我有一个用户向访客列表中添加姓名,并可以选择删除姓名。所有名称都附加到保存到localStorage的数组中。单击delete按钮时,我希望遍历数组,找到匹配的字符串并检索其索引。但是,如果字符串不匹配,则得到-1,如果匹配,则得到0。我的错误在哪里?感谢您的帮助 deleteBtn.addEventListener('click', function () { // Makes the Delete button active.
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));
deleteBtn.addEventListener('click',函数(){//使删除按钮处于活动状态。
const deleteName=this.parentElement.innerText;//父元素为li
const test=localStorage.getItem('data');
const testParsed=JSON.parse(test);
for(设i=0;i
我又玩了一些,并把它弄明白了。我将把这个问题留着,以防其他人能利用它
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));
}
deleteBtn.addEventListener('click',函数(){//使删除按钮处于活动状态。
const deleteName=this.parentElement.innerText;//父元素为li
const test=localStorage.getItem('data');
const testParsed=JSON.parse(test);
控制台日志(测试);
for(设i=0;i
旁注:compare.replace()
不会修改compare
的内容。index()函数需要一个参数:函数索引(deleteName){…}
(或者为了避免混淆,可能使用不同的名称,因为已经在使用deleteName
)类似这样的函数索引(equals){return equals===compare;}console.log(testParsed.findIndex(index));“是的,或者其他什么,就我个人而言,我会使用像item
,entry
或text