数组长度超过了javascript所需的长度
我有一个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您可
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您可以使用和作为回调过滤稀疏元素 这适用于项目 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]?虽然我知道这不是这个变量的最佳结构,也是一种不好的做法,但它是问题的解决方案。