javascript - 未处理的拒绝(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)
解决方案
您需要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
}
推荐阅读
- firebase - 错误:3 INVALID_ARGUMENT:无法将数组值转换为数组值
- javascript - 在 Google Maps 元素上添加背景叠加效果
- c# - 类似于 Unity 的 Transform 组件的 C# 库
- tensorflow2.0 - 如何将我的数据集转换为 Tensorflow.keras.model.fit()
- sql - [Postgres/SQL 查询]按 date_trunc 分组时如何获取最后一行条目?
- c# - CSR 使用 SHA-256withECDSA 的签名无效
- php - 删除空白但保留段落
- swift - 无法用信号量打破循环
- c# - Swagger UI:如何在下拉列表中获取枚举和布尔值?
- html - 如何将 html 元素移动到 SVG 元素上?