javascript - 切片未定义(在循环中对 Array 中的字符串进行切片时)
问题描述
我偶然发现了一些我无法理解的东西。在循环中对 Array 中的字符串进行切片会产生"Cannot read property 'slice' of undefined"
错误。当我自己切片任何 Array 字符串(没有循环)时,它工作正常。请帮我调试代码。
var Arr = ['2018-08-03 11:00:00', '2017-07-03 03:30:00'];
console.log('length of Arr: ', Arr.length);
console.log('string testing: ', Arr[0]);
var testing = Arr[0].slice(0,-3);
console.log('slice testing :', testing);
var chunks = [];
for (var i = 0; i<=Arr.length; i++) {
chunks.push(Arr[i].slice(0,-3));
};
console.log('chunks: ', chunks);
解决方案
您正在使用不正确i<=Arr.length
的for
循环条件。这是不正确的,因为当我们有时,如果值在循环中为真,那么 的长度Arr
就是如此。因此,当代码执行时,它无法在第三个索引中找到任何元素(因为 Arr[2] 表示第三个索引中的项目),因此它给出了该错误:2
i
2
for
i<=Arr.length
Arr[i]
Arr[2]
undefined
var Arr = ['2018-08-03 11:00:00', '2017-07-03 03:30:00'];
console.log('length of Arr: ', Arr.length);
console.log('string testing: ', Arr[0]);
var testing = Arr[0].slice(0,-3);
console.log('slice testing :', testing);
var chunks = [];
for (var i = 0; i<Arr.length; i++) {
chunks.push(Arr[i].slice(0,-3));
};
console.log('chunks: ', chunks);
推荐阅读
- button - SwiftUI:如何同时处理轻按和长按按钮?
- asp.net-core - 将 Swashbuckle 配置为使用内联模式
- couchbase - 是否可以在现有的 1 节点集群上启用查询 + 索引服务?
- java - Wildfly 模块与 Fat EAR 文件的补丁
- azure - 无法访问用于沉浸式 VR 的 Windows SpatialPerception
- amazon-web-services - 将新对象添加到地图时 Terraform 重新生成资源
- flutter - 轻敲 InkWell 内部时如何防止对周围 InkWell 产生涟漪效应
- pagespeed - Lighthouse 返回错误:generic::internal: APP::1: 渲染器异常终止,状态 = crashed exit_code = 1
- php - 通过代理服务器进行 PHP LDAP 身份验证
- c# - asp.net core 一个系统中的两个数据库