javascript - 在 JavaScript 或 jQuery 中识别具有多个空值但具有单个数字类型值/元素的数组
问题描述
Input : var arr = [2,null,null,null];
Output : true
Input : var arr = [null,null,5.6,null];
Output : true
Input : var arr = [2,null,null,5.6];
Output : false
Input : var arr = [null,null,null,null];
Output : false
需要一种有效的方法来识别具有一个有效数字元素的数组,其余的都可以为空。
null和Number类型元素只是我们在这里考虑的两种类型。
解决方案
这里唯一的效率方面是早期的错误退出。真正的出口必须比较所有的值。
let test_array = arr => {
let numbers = 0;
let length = arr.length;
for(let i = 0; i < length; ++i) {
if(arr[i] !== null) ++numbers;
if(numbers > 1) return false;
}
return (numbers == 1);
}
只有当你有长数组时,寻找效率才有意义。否则下面的一个班轮就足够了
arr.reduce((r, v) => r += (v !== null), 0) == 1
推荐阅读
- minecraft - 如何在 1.12.2 中 /fill with Armor Stand
- database - pg_cron 扩展连接失败
- node.js - 有没有一种有效的方法来获得成员 discord.js 的最稀有角色
- python - 如何解决 heroku flask 应用程序上的应用程序错误?
- visual-studio - 如何从 Visual Studio 将参数传递给 MSBuild?
- android - 适用于 Android 11 目标的离线提醒通知应用程序(Google Keep 之类)。应用关闭时如何接收通知?
- c# - 在asp.net中将大量数据从视图发送到控制器
- c# - Blazor 如何使用获取请求
- function - Flutter/cloud_firestore:未为 Map 类型定义运算符“[]”
功能() - reactjs - useState 的问题 - 修改后的状态没有立即反映