Javascript 数组筛选器返回的值不正确吗?
Javascript 数组筛选器返回的值不正确吗?,javascript,arrays,node.js,filter,Javascript,Arrays,Node.js,Filter,函数零点计数(arr){ 常数零=arr.filter(el=>{ 如果(el==0){ 返回el; } }); return zero.length;//但它返回0。我希望它返回3。 } log(零计数([2,3,0,5,0,2,0])您可以使用如下逻辑: [....].filter(x => x===0).length 因此,您的代码将是 函数零点计数(arr){ 返回arr.filter(x=>x==0).length; } log(零计数([2,3,0,5,0,2,0])您可以
函数零点计数(arr){
常数零=arr.filter(el=>{
如果(el==0){
返回el;
}
});
return zero.length;//但它返回0。我希望它返回3。
}
log(零计数([2,3,0,5,0,2,0])代码>您可以使用如下逻辑:
[....].filter(x => x===0).length
因此,您的代码将是
函数零点计数(arr){
返回arr.filter(x=>x==0).length;
}
log(零计数([2,3,0,5,0,2,0])代码>您可以使用如下逻辑:
[....].filter(x => x===0).length
因此,您的代码将是
函数零点计数(arr){
返回arr.filter(x=>x==0).length;
}
log(零计数([2,3,0,5,0,2,0])代码>对于筛选,需要返回类似布尔值的值,例如or值
更好的方法是直接计算零值
函数零点计数(arr){
返回arr.reduce((s,v)=>s+!v,0);
}
log(零计数([2,3,0,5,0,2,0])代码>对于筛选,需要返回类似布尔值的值,例如or值
更好的方法是直接计算零值
函数零点计数(arr){
返回arr.reduce((s,v)=>s+!v,0);
}
log(零计数([2,3,0,5,0,2,0])
filter
回调函数应该返回布尔值,并且您没有处理错误情况
您的函数应该如下所示
function zeroCount(arr){
const zero = arr.filter(el=>{
return el === 0;
});
return zero.length; // it returns 3
}
或者使用速记
function zeroCount(arr){
const zero = arr.filter(el=> el === 0);
return zero.length; // it returns 3
}
filter
回调函数应该返回布尔值,并且您没有处理错误情况
您的函数应该如下所示
function zeroCount(arr){
const zero = arr.filter(el=>{
return el === 0;
});
return zero.length; // it returns 3
}
或者使用速记
function zeroCount(arr){
const zero = arr.filter(el=> el === 0);
return zero.length; // it returns 3
}
如果您返回一个“truthy”值,过滤器将只添加元素。当前,您正在返回e1,返回值为0。(这是法尔西)
只需返回true即可
函数零点计数(arr){
常数零=arr.filter(el=>{
如果(el==0){
返回true;
}
});
return zero.length;//但它返回0。我希望它返回3。
}
log(零计数([2,3,0,5,0,2,0])代码>仅当您返回“truthy”值时,过滤器才会添加元素。当前,您正在返回e1,返回值为0。(这是法尔西)
只需返回true即可
函数零点计数(arr){
常数零=arr.filter(el=>{
如果(el==0){
返回true;
}
});
return zero.length;//但它返回0。我希望它返回3。
}
log(零计数([2,3,0,5,0,2,0])代码>现在,如果元素为0,则返回0。过滤器的工作原理是它需要一个布尔值,它应该将当前元素保留在新数组中
不幸的是,您返回的是0,这将转换为false
函数零点计数(arr){
常数零=arr.filter(el=>{
如果(el==0){
return el;//返回0,因此不会将其添加到筛选数组中
}
});
return zero.length;//但它返回0。我希望它返回3。
}
log(零计数([2,3,0,5,0,2,0])代码>现在,如果元素为0,则返回0。过滤器的工作原理是它需要一个布尔值,它应该将当前元素保留在新数组中
不幸的是,您返回的是0,这将转换为false
函数零点计数(arr){
常数零=arr.filter(el=>{
如果(el==0){
return el;//返回0,因此不会将其添加到筛选数组中
}
});
return zero.length;//但它返回0。我希望它返回3。
}
log(零计数([2,3,0,5,0,2,0])代码>
函数零点计数(arr){
常数0=arr.filter(el=>el==0);
返回零。长度;
}
log(零计数([2,3,0,5,0,2,0])代码>
函数零点计数(arr){
常数0=arr.filter(el=>el==0);
返回零。长度;
}
log(零计数([2,3,0,5,0,2,0])代码>您需要了解过滤器的工作原理
filter函数将根据您从内部返回的true或false拾取或删除元素
您返回的el为0。JS中的0为false。这就是你的代码不起作用的原因
两种可能的解决办法
(一)
(二)
3) 炫耀
zeroCount = (arr) => arr.filter(el => !el).length
您需要了解过滤器是如何工作的
filter函数将根据您从内部返回的true或false拾取或删除元素
您返回的el为0。JS中的0为false。这就是你的代码不起作用的原因
两种可能的解决办法
(一)
(二)
3) 炫耀
zeroCount = (arr) => arr.filter(el => !el).length
函数过滤器的处理程序应返回布尔值
以下方法假设只有数字
函数零点计数(arr){
返回arr.filter(el=>!el).length;
}
log(零计数([2,3,0,5,0,2,0])代码>函数过滤器的处理程序应返回布尔值
以下方法假设只有数字
函数零点计数(arr){
返回arr.filter(el=>!el).length;
}
log(零计数([2,3,0,5,0,2,0])代码>下面的方法有助于返回数组中falsy值的计数
函数零点计数(arr){
返回arr.filter(elem=>!elem).length;
}
log(零计数([2,3,0,5,0,2,0])代码>下面的方法有助于返回数组中falsy值的计数
函数零点计数(arr){
返回arr.filter(elem=>!elem).length;
}
log(零计数([2,3,0,5,0,2,0])代码>[2,3,0,5,0,2,0]。过滤器(x=>x==0)。长度
??遵循以下链接:[2,3,0,5,0,2,0]。过滤器(x=>x==0)。长度
??遵循以下链接: