Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数组长度超过了javascript所需的长度_Javascript - Fatal编程技术网

数组长度超过了javascript所需的长度

数组长度超过了javascript所需的长度,javascript,Javascript,我有一个Javascript数组,如下所示: books[3] = 'abcds'; books[54] = 'point'; books[218] = 'qwerty'; alert(books.length); 警报为218,而不是3。我只需要一个包含3项的数组,而不是218项 如何解决这个问题?获取数组中值计数的方法是Object.valuesbooks.lengthbooks[3]将在第4位添加元素,第0-3位将为空,同样,books[218]将在第219位 因此,长度将为219您可

我有一个Javascript数组,如下所示:

books[3] = 'abcds';
books[54] = 'point';
books[218] = 'qwerty';

alert(books.length);
警报为218,而不是3。我只需要一个包含3项的数组,而不是218项


如何解决这个问题?

获取数组中值计数的方法是Object.valuesbooks.length

books[3]将在第4位添加元素,第0-3位将为空,同样,books[218]将在第219位


因此,长度将为219

您可以使用和作为回调过滤稀疏元素

这适用于项目

var账簿=[]; 书籍[3]=“ABCD”; 书籍[54]=“点”; 书籍[218]=“qwerty”; var allBooks=books.filterBoolean; console.logallBooks.length;
控制台。日志 而不是在提到的索引中存储值。可以将值以对象的形式存储在数组中

var账簿=[]; books.push{3:'abcd'}; 书籍。推{54:'点'}; books.push{218:'qwerty'};
控制台。日志。长度;这将提醒219,而不是218-如果您想要3个属性,请使用对象而不是数组-说真的,您甚至没有正确回答这个问题!这些钥匙有什么意义?为什么不使用books[0]、books[1]、books[2]?虽然我知道这不是这个变量的最佳结构,也是一种不好的做法,但它是问题的解决方案。