如果未定义js数组索引是否已设置

时间:2019-05-03 16:20:33

标签: javascript jquery arrays

我正在处理一个脚本,在该脚本中,我需要基于大量时间戳的一些数据。

下面只是一个例子

   using System;
   using System.Collections.Generic;
   using System.Linq;
   using System.Threading.Tasks;
   using System.Windows.Forms;

   namespace WindowsFormsApplication1
   {
   static class Program
   {
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }
    }
    }

上面的示例将在控制台中输出以下内容

enter image description here

但是,如果我在控制台中检查数据,则会看到很多空集,从0开始计数到最后一个时间戳记

enter image description here

所以我的问题是:

JavaScript将设置所有这些索引,还是仅在控制台中显示? 如果不是,我想这样做对性能非常不利,就像上面那样吗?

1 个答案:

答案 0 :(得分:0)

是的,您的假设是正确的。如果您使用具有键/值对的对象,这将不是问题,但是您将使用pushfilter之类的方法。

示例:

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);

输出:

enter image description here