Как написать эту строку JQuery на чистом JavaScript?

85
08 июня 2021, 06:30

Как написать эту строку JQuery на чистом JavaScript ? Строку я обозначил коментарием.

var cart = {}; 
$.getJSON('goods.json', function (data) {
    var goods = data; 
    checkCart();
   showCart(); 
    function showCart() {
        if ($.isEmptyObject(cart)) { /*--------THIS STRING------ */  
            var out = 'Корзина пустая. Добавьте товар в корзину <a href="index.html">главная страница</a>';
            document.getElementById('my-cart').innerHTML = out;
        }
        else {
            var out = '';
            for (var key in cart) {
                out += '<button class="delete" data-art="' +  key  + '" > x </button>';
                out += ' <img src="' + goods[key].image + '" width="48">';
                out += goods[key].name;
                out += ' <button class="minus" data-art="' +  key  + '"> - </button>';
                out += cart[key];
                out += ' <button class="plus" data-art="' +  key  + '"> + </button>';
                out += cart[key] * goods[key].cost;
                out += '<br>';
            }
            document.getElementById('my-cart').innerHTML = out;                          
            document.querySelectorAll('.plus').forEach(function(but) {
            but.addEventListener("click",plusGoods);
})  
            document.querySelectorAll('.minus').forEach(function(but) {
           but.addEventListener("click",minusGoods);
})    
            document.querySelectorAll('.delete').forEach(function(but) {
           but.addEventListener("click",deleteGoods);
})    
        }
    }
Answer 1

Можно добавить где-то в конце кода эту функцию и использовать её:

function isEmptyObj( obj ){ 
  for( var key in obj ){ 
    return false; 
  } 
  return true; 
} 
 
console.log( isEmptyObj( {} ) ); 
console.log( isEmptyObj( {test: 1, moo: 2} ) );

Answer 2

есть такое однострочное решение

function isEmptyObject(obj) { 
  return !Object.keys(obj).length; 
} 
 
console.log(isEmptyObject({})); 
console.log(isEmptyObject({ test: 1, moo: 2 }));

READ ALSO
Ошибка в классе. Использование do..while [закрыт]

Ошибка в классе. Использование do..while [закрыт]

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском

82
Практика VS Теория в программировании [закрыт]

Практика VS Теория в программировании [закрыт]

Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы на него можно было дать ответ, основанный на фактах и цитатах

119
Как найти значение вложенного обьекта

Как найти значение вложенного обьекта

Пытаюсь сделать helper функцию, в которую первым аргументом мы передаём обьект в котором исчем, а вторым это ключ которой должны получитьПроблема...

65