Javascript 如何访问函数中的数组?

Javascript 如何访问函数中的数组?,javascript,arrays,function,Javascript,Arrays,Function,我正在开发我的待办事项列表应用程序。大部分都很好,但我还是有这个问题 (未捕获的TypeError:无法读取未定义的属性)。由于某些原因,我还无法理解,我无法将数组toDoList传递给searchList函数,以便为我的动态搜索功能过滤相关元素。有人愿意帮忙吗 const button=document.querySelector(“按钮”); 让toDoList=[]; 常量输入=document.querySelector(“.add”); const search=document.q

我正在开发我的待办事项列表应用程序。大部分都很好,但我还是有这个问题 (未捕获的TypeError:无法读取未定义的属性)。由于某些原因,我还无法理解,我无法将数组
toDoList
传递给
searchList
函数,以便为我的动态搜索功能过滤相关元素。有人愿意帮忙吗

const button=document.querySelector(“按钮”);
让toDoList=[];
常量输入=document.querySelector(“.add”);
const search=document.querySelector(“.search”);
const ul=文件查询选择器(“ul”);
const removeBtn=document.getElementsByClassName(“删除”);
const span=document.querySelector(“h1 span”);
常数键=0
常量附加项=(e)=>{
e、 预防默认值()
ul.innerHTML=“”
toDoList.push(input.value)
toDoList.forEach((toDoElement,键)=>{
const task=document.createElement(“li”)
task.dataset.key=key;
钥匙++
task.className=“task”;
task.textContent=toDoElement
task.innerHTML+=`usuń`
ul.儿童(任务);
span.textContent=toDoList.length;
task.querySelector(“按钮”).addEventListener(“单击”,删除项)
})
}
const searchList=(e,toDoList)=>{
ul.innerHTML=“”
如果(search.value==“”){
toDoList.forEach((toDoElement,键)=>{
const task=document.createElement(“li”)
task.dataset.key=key;
钥匙++
task.className=“task”;
task.textContent=toDoElement
task.innerHTML+=`usuń`
ul.儿童(任务);
span.textContent=toDoList.length;
task.querySelector(“按钮”).addEventListener(“单击”,删除项)
})
}否则{
const searchText=e.target.value.toLowerCase();
console.log(searchText);
console.log(toDoList);
让result=toDoList.filter(li=>li.textContent.toLowerCase().includes(searchText))
console.log(结果)
}
}
const removietem=(e)=>{
e、 target.parentNode.remove();
const index=e.target.parentNode.dataset.key;
toDoList.splice(索引,1)
span.textContent=toDoList.length;
}
按钮。addEventListener(“单击”,addItem);
search.addEventListener(“输入”,搜索列表)

多达吉·扎达尼
利兹巴·扎达南:

    searchList const searchList=(e,toDoList)=>{
    中的参数中删除
    toDoList
    ,并从
    li.textContent.toLowerCase()中删除
    textContent

    const button=document.querySelector(“按钮”);
    让toDoList=[];
    常量输入=document.querySelector(“.add”);
    const search=document.querySelector(“.search”);
    const ul=文件查询选择器(“ul”);
    const removeBtn=document.getElementsByClassName(“删除”);
    const span=document.querySelector(“h1 span”);
    常数键=0
    常量附加项=(e)=>{
    e、 预防默认值()
    ul.innerHTML=“”
    toDoList.push(input.value)
    toDoList.forEach((toDoElement,键)=>{
    const task=document.createElement(“li”)
    task.dataset.key=key;
    钥匙++
    task.className=“task”;
    task.textContent=toDoElement
    task.innerHTML+=`usuń`
    ul.儿童(任务);
    span.textContent=toDoList.length;
    task.querySelector(“按钮”).addEventListener(“单击”,删除项)
    })
    }
    const searchList=(e)=>{
    ul.innerHTML=“”
    如果(search.value==“”){
    toDoList.forEach((toDoElement,键)=>{
    const task=document.createElement(“li”)
    task.dataset.key=key;
    钥匙++
    task.className=“task”;
    task.textContent=toDoElement
    task.innerHTML+=`usuń`
    ul.儿童(任务);
    span.textContent=toDoList.length;
    task.querySelector(“按钮”).addEventListener(“单击”,删除项)
    })
    }否则{
    const searchText=e.target.value.toLowerCase();
    console.log(searchText);
    console.log(toDoList);
    让result=toDoList.filter(li=>li.toLowerCase().includes(searchText));
    console.log(结果)
    }
    }
    const removietem=(e)=>{
    e、 target.parentNode.remove();
    const index=e.target.parentNode.dataset.key;
    toDoList.splice(索引,1)
    span.textContent=toDoList.length;
    }
    按钮。addEventListener(“单击”,addItem);
    search.addEventListener(“输入”,搜索列表)
    
    托多利斯特
    多达吉·扎达尼
    利兹巴·扎达南:
    

      从函数参数中删除
      toDoList


      常量搜索列表=(e,toDoList)>>>>常量搜索列表=(e)=>



      当您试图根据不在本问题答案范围内的搜索字符串筛选
      li
      s时,这将引发另一个异常;

      您全局存储了
      toDoList
      ,因此定义名为
      toDoList
      的函数变量时,会在该范围内用传入的内容重写它(这算不了什么,所以它是
      未定义的
      )。正如其他人所说,只需从
      搜索列表
      中删除参数就足够了

      我还试图整理代码,使其更具可读性,并添加了缺少的分号。它们不是可选的!;-)

      const button=document.querySelector(“按钮”);
      常量输入=document.querySelector(“.add”);
      const search=document.querySelector(“.search”);
      const ul=文件查询选择器(“ul”);
      const removeBtn=document.getElementsByClassName(“删除”);
      const span=document.querySelector(“h1 span”);
      风险值toDoList=[];
      常数键=0;
      常量附加项=(e)=>{
      e、 预防默认值();
      ul.innerHTML=“”;
      toDoList.push(输入值);
      toDoList.forEach((toDoElement,键)=>{
      const task=document.createElement(“li”);
      task.dataset.key=key++;
      task.className=“task”;
      task.innerHTML=toDoElement+“删除”;
      task.querySelector(“按钮”).addEventListener(“单击”,删除项);
      ul.儿童(任务);
      span.textContent=toDoList.length;
      });
      }
      const removietem=(e)=>{
      e、 target.parentNode.remove();
      const index=e.target.parentNode.dataset.key;
      toDoList.拼接(索引1);
      跨度