let obj = {a: 1, b: 2, c: 3, d: 4, e: 5};
for ( let index in obj ) {
if ( obj[index] % 2 != 0 ) {
console.log( obj[index] )
}
}
надо вывести в консоль НЕчётные элементы объекта
JavaScript
Можно ли как-то упростить?
let obj = {a: 1, b: 2, c: 3, d: 4, e: 5};
Object.values(obj).filter(v => v % 2).forEach(v => console.log(v));
Но если можно в одну строку, то всё становится проще: let obj = {a: 1, b: 2, c: 3, d: 4, e: 5};
console.log(...Object.values(obj).filter(v => v % 2));
let obj = {a: 1, b: 2, c: 3, d: 4, e: 5};
Object.values(obj).forEach(value => value % 2 !== 0 && console.log(value));
Object.values(obj).forEach(value => value % 2 !== 0 && console.log(value));
' '.split('').map((v, i)=>i).filter(i=>i%2)
Если без методов массива/объекта, то сильно ничего не поменять. Разве что пара незначительных нюансов.
И не то чтобы упрощение, но у объектов не индексы а свойства, и названия свойств принято называть ключами.
Объекты не принято перезаписывать, поэтому const уместнее.
Фигурные скобки не обязательны, если выражение одно.
С методами так:
const obj = { a: 1, b: 2, c: 3, d: 4, e: 5 };
for (let key in obj) {
if (obj[key] % 2) console.log(obj[key]);
}
Убрать сравнение с нулём разве что. obj[key] % 2 возвращает 1 или 0, что само по себе воспринимается как true/false.И не то чтобы упрощение, но у объектов не индексы а свойства, и названия свойств принято называть ключами.
Объекты не принято перезаписывать, поэтому const уместнее.
Фигурные скобки не обязательны, если выражение одно.
С методами так:
const obj = {a: 1, b: 2, c: 3, d: 4, e: 5};
Object.values(obj).forEach(val => val % 2 && console.log(val));
// или так
Object.values(obj).filter(val => val % 2).forEach(val => console.log(val));
Это не упращение, это укорачивание. В каком-то роде даже усложнение, потому что новичок может не понять твой код.Можно упростить следующим образом:
let obj = {a: 1, b: 2, c: 3, d: 4, e: 5};
for (let key in obj) {
if (obj[key] % 2 !== 0) {
console.log(obj[key]);
}
}
let obj = {a: 1, b: 2, c: 3, d: 4, e: 5};
for (let key in obj) {
if (obj[key] % 2 !== 0) {
console.log(obj[key]);
}
}
Можно переписать данный код в одну строку, используя метод Object.values() для получения значений объекта, метод forEach() для итерации по значениям и оператор стрелочной функции.
let obj = {a: 1, b: 2, c: 3, d: 4, e: 5};
Object.values(obj).forEach(value => value % 2 !== 0 && console.log(value));
Этот код создает массив значений из объекта obj с помощью Object.values(obj), а затем для каждого значения выполняет проверку на нечётность с помощью условия value % 2 !== 0. Если значение нечётное, оно выводится в консоль с помощью console.log(value).Похожие вопросы
- Не могу понять выражение Упростите на JS условие if(i-- && xx + yy <= 4 ), когда все переменные- числа!
- Как упростить этот код (цикл for)?
- Правильно ли я упростил коллбэк через стрелочную функцию?
- Единая упрощенная налоговая декларация и УСН
- 25 июля нужно платить налог (у меня упрощенная система налогообла
- Зачем стараться придумать зверю длинную кличку, иногда состоящую из нескольких слов? Тут не знаешь блин, как упростить..
- При переходе на упрощенную систему
- упрощенная система налогообложения
- Упрощенная система - непонятный моментик объясните, пожалуйста... Всем +5 и спасибо:-)))
- Срочно!!! Подскажите схему самостоятельного оформления ДТП по упрощенному порядку при сумме ущерба менее 25000 рублей.