Как получить несколько значений объекта?
Есть три объекта, обязательное свойство name и surname. Задача в том, чтобы вывести необязательные свойства.
Подскажите пожалуйста, в чем ошибка?
function erraySearch(arr) {
for (var key in arr) {
if (key != "name" || key != "surname") {
console.log(key);
}
}
}
var a = {
name: "",
surname: "",
"age": 18,
}
var b = {
name: "",
surname: "",
"fathername": "Семенович",
}
var c = {
name: "",
surname: "",
"sex": "мужской",
}
erraySearch(a);
Ответы (2 шт):
Автор решения: Denis640Kb
→ Ссылка
Вы используете ||(или), в то время как условие должно не быть равным одному и в тоже время не быть равным другому.
Вам необходимо использовать оператор &&.
function erraySearch(arr) {
for (var key in arr) {
if (key != "name" && key != "surname") {
console.log(key);
}
}
}
var a = {
name: "",
surname: "",
"age": 18,
};
var b = {
name: "",
surname: "",
"fathername": "Семенович",
};
var c = {
name: "",
surname: "",
"sex": "мужской",
};
erraySearch(a);
erraySearch(b);
erraySearch(c);
Автор решения: OPTIMUS PRIME
→ Ссылка
Если таких ключей будет чуть больше, полезно создать массив исключений, вместо длинной строки проверок:
let a = {
name: "",
surname: "",
age: 18,
bubu: "moo",
};
search(a);
function search(obj) {
let dontLook = ["name", "surname"];
for (let key in obj) {
if ( dontLook.includes(key) ) continue;
console.log(key + ": " + obj[key]);
}
}