首页 > 其他分享 >js中一个移除对象中子数组中空值的函数

js中一个移除对象中子数组中空值的函数

时间:2023-04-13 21:59:12浏览次数:35  
标签:obj undefined delarr js 空值 typeof 移除 null

js中一个移除对象中子集数组中空值(null,undefined)的函数

function removeNull(obj){
    let delarr = [];
    for(let i in obj){
        // 排除法寻找对象类型
        if(typeof(obj[i]) === 'boolean' ||
        typeof(obj[i]) === 'string' ||
        typeof(obj[i]) === 'number' ||
        typeof(obj[i]) === 'bigint' ||
        typeof(obj[i]) === 'symbol' ||
        typeof(obj[i]) === 'function' 
        // 如果你有其他类型的在这里声明一下
        ) continue;
        if(obj[i] == null || obj[i] == undefined){
            delarr.push(i);
        }else{
            this.removeNull(obj[i]);
        }
    }
    while(delarr.length>0){
        if(obj.length != undefined){
            // 数组
            obj.splice(delarr.pop(),1);
        }else{
            // 对象
            // 暂时还没找到处理方法
            delarr.pop();
        }
    }
    return obj;
}

测试函数:

let a = {b:null,c:[null,1,2,null,null],d:{aa:1,bb:2,cc:null,dd:undefined}}
console.log(JSON.stringify(a));
console.log(removeNull(a));

还未实现移除子对象中空属性的功能

标签:obj,undefined,delarr,js,空值,typeof,移除,null
From: https://www.cnblogs.com/guhunjun/p/17316563.html

相关文章

  • js的一些小问题集合
    1.等于号的应用functionreverse(){varcheckbox=document.getElementsByName("hobby");for(leti=0;i<checkbox.length;i++){if(checkbox[i].checked==true){//注意一个问题,在if中用双等于来作为正确的判断单等于号为赋值checkbox[i].checked=false;}elsecheck......
  • js基础:1.
    javascript(简称“js”)开发外部脚本语言是轻量级解释型语言开始于1995年网景公司javascript的标准是ECMAscript互联网是1970年1月1号js代码必须写在script标签里(预格式化文本)预格式输出标签console.log输出使用:控制台打印语句(控制台日志)变量var声明关键字关......
  • JSON Web Tokens (JWT) — the only explanation you will ever need
    本文摘抄自ArielWeinberger博客  JSONWebTokens(JWT)—theonlyexplanationyouwilleverneed|byArielWeinberger|Medium JSONWebTokens(JWT)—theonlyexplanationyouwilleverneedJSONWebTokensarechangingtheworldf......
  • JSON.stringify()的几个场景
    循环引用使用JSON.stringify()时,遇到循环引用的时候,会抛出错误TypeError:ConvertingcircularstructuretoJSON,如果需要强行转成字符串的话,需要利用到该方法的第二个参数。主要思路其实就是将循环引用的部分替换成某个标识,等到解析的时候去替换掉,就可以拿到原来的循环引用的......
  • 栈空间和堆控件:JS数据怎么存储的?
    JS数据存储主要分堆和栈两种,栈空间:通常情况栈空间不会设置太大,主要用来存放一些原始类型的小数据,原始类型的数据有:Boolean、Null、Undefined、Number、BigInt、String、Symbol,栈空间具有空间小,但是读取速度快的特点堆空间:空间很大,但是速度相对堆空间较慢,主要存储引用型的数据,创......
  • json
    1、介绍JSON:JavaScriptObjectNotation(JavaScript对象表示法)JSON是存储和交换文本信息的语法,类似XML。JSON比XML更小、更快,更易解析。JSON易于人阅读和编写。2、数据类型(1)数字(整数或浮点数)(2)字符串(在双引号中)(3)逻辑值(true或false)(4)数组由[]包围,其内......
  • 【js】js内置对象Error(错误机制)
    Error:基类型;ReferenceError:找不到对象时抛出;SyntaxError:语法错误;TypeError:类型错误时抛出;EvalError:eval()函数发生异常时抛出;InternalError:js引擎内部发生的错误;RangeError:数值超出范围时触发;URIError:URI格式不正确时抛出,常发生在encodeURI或者decodeURI调用时;DOMExcept......
  • 使用vue+bpmn-js实现activiti的流程设计器__Vue.js
    https://www.vue-js.com/topic/5f6c4af84590fe0031e591ef完整代码见github:https://github.com/griabcrh/vue-activiti-demo适配activitiimportactivitiModdleDescriptorfrom'../js/activiti.json';this.bpmnModeler=newBpmnModeler({container:ca......
  • adobe安装提示错误“Error:SyntaxError:JSON Parse error:Unexpected EOF”的解决方法
    mac电脑安装Adobe时,会提示错误“Error:SyntaxError:JSONParseerror:UnexpectedEOF”,这是怎么回事儿的,不管您是安装AI、ps、PR还是lr,如果也遇到相同的问题,可以参考一下方法解决。adobe安装提示错误“Error:SyntaxError:JSONParseerror:UnexpectedEOF”的解决方法,如下:需要使用A......
  • 函数解决js数值相加精度丢失问题
    浏览器控制台输入console.log(0.1+0.2)结果为0.30000000000000004      当我们尝试将0.1和0.2相加时,结果应该是0.3,但是在JavaScript中,结果却是0.30000000000000004。这是因为0.1和0.2在二进制中无法被精确表示,所以在进行相加时会产生舍入误差,从而导致精度丢失。......