JS:判斷對象為空及清除對象為空屬性


1、判斷對象為空對象(也就是{})

(1)使用Object.keys

  (2) 使用 JSON.stringify

  (3)使用for..in

image

2、清除對象為空屬性

(1)會改變原對象(直接修改原對象)的方法

image

(2)不改變原對象的方法(也就是返回一個新對象)

image

原代碼如下:

function filterParams(obj) { // 剔除對象的空屬性
    var _newObj = {};
    for (var key in obj) {
        if (obj.hasOwnProperty(key)) { // 判斷對象中是否有這個屬性
            if (isEmpty(obj[key])) continue;
            _newObj[key] = typeof obj[key] === 'object' ? (
                obj[key] instanceof Array ? ArrayFilterParams(obj[key]) : filterParams(obj[key])
            ): obj[key];
            
        }
    }
    return _newObj;
}
function ArrayFilterParams(arr) { // 剔除數組中的空值
    var err = [];
    const empty_arr = ['', undefined, null];
    arr.forEach((item, index) => {
        if (isEmpty(item)) return;
        err.push(
            typeof item === 'object' ? (
                item instanceof Array ? ArrayFilterParams(item) :  filterParams(item)
            ) : item
        );
    })
    return err;
}
function isEmpty(obj) { // 為空情況
    const empty_arr = ['', undefined, null];
    return (empty_arr.indexOf(obj) > -1 || obj.toString().trim() === '');
}
let info = {
    name: '111',
    age: null,
    sex: undefined,
    aa: '',
    infoo: [
        1, 23,5434,null,22, {
            nale: '',
            ss: '111'
        }
    ],
    cc: {
        asas: [
            1,2,23,333
        ],
        name: '',
        asss: undefined,
        aaa:null
    }
}
console.log(filterParams(info));


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM