Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как проверить все имена объекта на пустоту? (https://javascript.ru/forum/misc/75699-kak-proverit-vse-imena-obekta-na-pustotu.html)

Artur_Hopf 30.10.2018 16:16

Как проверить все имена объекта на пустоту?
 
Добрый день. Есть массив, внутри которого могут быть пустые объекты. Как проверить их на пустоту? Так проверяю только один test[i].name, а как проверить summ и number?
var test = [{name:{}, summ:{}, number:{}},{name:'name', summ:132, number:2}];

for (var i = 0; i < test.length; i++) {
    if(JSON.stringify(test[i].name)!="{}"){
	    console.log(test[i]);
    }
}


Что то вроде если хотя бы один из объектов пуст, не обрабатывать его.

laimas 30.10.2018 16:34

Если количество свойств объекта равно 0, то он пуст - Object.keys(obj).length

j0hnik 30.10.2018 17:58

var filtered = test.filter(el=>Object.keys(el).every(prop=>JSON.stringify(el[prop])!="{}"));

Dilettante_Pro 30.10.2018 18:25

var test = [{name:{}, summ:{}, number:{}},{name:'name', summ:132, number:2}];

for (var i = 0; i < test.length; i++) {
    for(key in test[i]) {
       if(JSON.stringify(test[i][key]) != "{}" ){
	    console.log(test[i][key]);
       }
    }
}

Artur_Hopf 31.10.2018 07:52

Всем спасибо :thanks:


Часовой пояс GMT +3, время: 03:06.