把数组里的假值转为0

Posted on   猫头唔食鱼  阅读(215)  评论(0编辑  收藏  举报
    // 假值转换为0
        let toZero = (arr)=>{
           return arr.map(v=>v||0)
        }
        let c = [1,2,3,0,false,null,undefined,NaN,'']
        console.log(toZero(c)); // [1, 2, 3, 0, 0, 0, 0, 0, 0]

上面这个方法可以把假值,转换为0,但是不能把'0.00','0','0.0000'之类的值转换成为0,因为'0.00','0','0.000'这类的值是真值

所以,如果要把类似'0.00'这样的值转换为0那就要下面的方法

复制代码
    // 假值转为 0 ,包括'0','0.00','0.0000'和 空字符串,字符串数字转为数字
        let toZero2 = (arr)=>{
            let newArr = []
               arr.forEach(v=>{
                typeof v!=='string'?  ( v = v || 0) :(v =   Number(v) || 0)
                newArr.push(v)
            })
            return newArr
        }
        let d = [1,2,0,'0','0.00','0.0000',undefined,null,false,NaN,3,'','0.03','0.9','100','0.4236']
        console.log(toZero2(d));// [1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0.03, 0.9, 100, 0.4236]
复制代码

 还可以这样:

复制代码
 let q = [1,2,0,'0','0.00','0.0000',undefined,null,false,NaN,3,'','0.03','0.9','100','0.4236']
        let toZero3 = (arr)=>{
            let newArr = []
            arr.forEach(v=>{
                typeof v!== 'number'?typeof v === 'string'?(v=+v):(v=0) : !(!!v) && (v=0)
                newArr.push(v)
            })
            return newArr
        }
        console.log(toZero3(q));
复制代码

 

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
历史上的今天:
2019-09-22 创建koa2项目
点击右上角即可分享
微信分享提示