Как удалить значение из объекта на основе критериев в javaScript - PullRequest
0 голосов
/ 22 октября 2018

Почему этот код работает без ошибок, но ничего не удаляет из obj?

function removeEvenValues(obj) {
       for (i=0; i < obj.length;++i)
          if (obj[i].value%2===0)
            delete obj[i];
            return obj;
}

const obj = {a:1, b:2 ,c:3, d:4}
const res = removeEvenValues(obj);

console.log(res);

1 Ответ

0 голосов
/ 22 октября 2018

В отличие от Python, вы не можете просто перебрать длину объекта, потому что obj.length === undefined.Вы можете использовать Object.keys(), чтобы получить массив ключей.Затем вы можете выполнить их итерацию:

obj = {a:1,b:2,c:3,d:4}

function removeEvenValues(obj) {
       Object.keys(obj).forEach(key =>{
        if (obj[key] % 2 ===0)
            delete obj[key];
       })  
       return obj;
}

console.log(removeEvenValues(obj))

или вы также можете использовать for...in:

obj = {a:1,b:2,c:3,d:4}

function removeEvenValues(obj) {
   for(let key in obj){
     if (obj[key] % 2 ===0)
         delete obj[key];
     }
     return obj
}

console.log(removeEvenValues(obj))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...