[英]How ignore empty array elements for length calculation
JS:
var personnesAAjouter = [];
personnesAAjouter[idUtilisateur] = [];
personnesAAjouter[idUtilisateur]['nom'] = nomUtilisateur;
personnesAAjouter[idUtilisateur]['prenom'] = prenomUtilisateur;
personnesAAjouter[idUtilisateur]['email'] = emailUtilisateur;
对于为例,如果我添加一个用户与idUtilisateur = 102
,的长度personneAAjouter
是102
。
也许是因为键是整数,而 Javascript 使用键来获取数组长度?
是否存在一种忽略每个空元素进行长度计算的方法?
谢谢你的帮助!
您可以像下面这样使用array#reduce
:
let arr=[]; arr[5]=1; console.log(arr.length); let myLength=arr.reduce((acc,cv)=>(cv)?acc+1:acc,0); console.log(myLength);
在 JavaScript 中数组是对象。 数组具有length
属性,其值为对象中存在的最高整数键 + 1。
所以array.length
不返回数组中元素的数量,而只返回该属性的值。
要实际计算数组中元素的数量,您可以使用以下方法:
var arrayCount = function(myArray) {
var count = 0;
myArray.forEach(function(val) {
count++;
});
return count;
}
我会使用过滤器来保持数据类型一致(尤其是在打字稿中)
let stringArr = [];
stringArr[3] = "abc";
const result = stringArr.filter(word => word !== undefined);
我最终使用arr.filter(x=>1).length
而不是arr.length
myArray = ["a","b"]
delete array[1] // deletes "b", but leaves an 'empty' slot 'existing'
console.log(myArray)
// ["a", empty]
myArray.length
// -> 2
// this is a filter that returns true for every item, but is only run for
// items that aren't empty. Note that it is non-mutating; it creates a
// new array in memory, measures its length, and then lets it disappear
// into the void.
myArray.filter(x=>1).length // -> 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.