首页 > 解决方案 > 未处理的拒绝(TypeError):无法读取未定义的属性“推送”

问题描述

我收到这个错误,我只想创建一个返回数组所有索引的函数,但我不知道我是否做错了什么,它只是显示一个错误,而不是 push 不能使用,因为未定义的值。

这里的代码:

    function getIindex(array){
      let values
      for (let [ index, value ] of array.entries()) {
        values.push(index)
        console.log(values)
      }  
      return values
    }  

    let indexSubIndustry = getIindex(subRows)

标签: javascriptreactjstypescript

解决方案


您需要values使用值初始化变量,在您的情况下为空数组。

function getIindex(array){
  let values = []; // here
  for (let [ index, value ] of array.entries()) {
    values.push(index)
    console.log(values)
  }  
  return values
}  

let indexSubIndustry = getIindex(subRows)

您可能需要为该数组指定类型提示,具体取决于您的 TS 配置(例如启用严格模式)。

let values: number[] = [];

顺便说一句,您的代码可以简化很多,如果您想返回array参数的键,只需使用keys()方法:

function getIindex(array){
  return [...array.keys()]; // convert iterator to array
}  

推荐阅读