javascript - 如果未定义,是否设置 js 数组索引
问题描述
我正在编写一个脚本,其中我需要一些基于大量时间戳的数据。
下面只是一个例子
var timestampData1 = [1555486016,1555486017,1555486018...];
var timestampData2 = [1555486016,1555486017,1555486018...];
var data = [];
data[1] = [];
$.each(timestampData1,function(index,value) {
data[1][value] = 1;
});
data[2] = [];
$.each(timestampData2,function(index,value) {
data[2][value] = 1;
});
console.log(data);
上面的示例将在控制台中输出以下内容
但是,如果我检查控制台中的数据,我会看到很多从 0 到最后一个时间戳的空集
所以我的问题是:
javascript会设置所有这些索引,还是只是控制台中的一个指示?如果不是,我想这对性能非常不利,像上面那样做吗?
解决方案
是的,你的假设是正确的。如果您使用具有键/值对的对象,这不会成为问题,但是您将排列方法,如push
和filter
。
例子:
var timestampData1 = [1555486016,1555486017,1555486018...];
var timestampData2 = [1555486016,1555486017,1555486018...];
var data = [];
//Make data[1] an object not array
data[1] = {};
$.each(timestampData1,function(index,value) {
data[1][value] = 1;
});
//Make data[1] an object not array
data[2] = {};
$.each(timestampData2,function(index,value) {
data[2][value] = 1;
});
console.log(data);
输出:
推荐阅读
- apache - 我可以分解我的 VirtualHost 配置吗?
- git - 为 GitLab CI 禁用 GIT LFS
- keystore - 以太坊密钥库文件加密或损坏?
- javascript - 在您的项目中找不到 Typescript 编译器,对 typescript 文件的分析被中止
- html - 缩进罗马列表中的段落
- php - SQLite 保存了错误的整数?
- tensorflow - AIY视觉套件上的物体检测
- reactjs - 在 React-Select Async 上获取网络错误和空下拉列表
- git - 排除多计算机工作区上的 Intelij .iml 文件
- excel - 在 Excel Visual Basic 中按时运行宏