Javascript 为什么findIndex()返回0而不是所需的索引?

Javascript 为什么findIndex()返回0而不是所需的索引?,javascript,Javascript,我一直在试图找出如何检索所需的索引。我有一个用户向访客列表中添加姓名,并可以选择删除姓名。所有名称都附加到保存到localStorage的数组中。单击delete按钮时,我希望遍历数组,找到匹配的字符串并检索其索引。但是,如果字符串不匹配,则得到-1,如果匹配,则得到0。我的错误在哪里?感谢您的帮助 deleteBtn.addEventListener('click', function () { // Makes the Delete button active.

我一直在试图找出如何检索所需的索引。我有一个用户向访客列表中添加姓名,并可以选择删除姓名。所有名称都附加到保存到localStorage的数组中。单击delete按钮时,我希望遍历数组,找到匹配的字符串并检索其索引。但是,如果字符串不匹配,则得到-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));
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