что я делаю не так? нужно написать функцию в js которая перебирает массив объектов и в зависимости от условия if else возвращает массив значений
Мне надо чтобы функция возвращала в зависимости от значения propName массив значений ключей: name, price ,quantity, а вместо этого возвращается только одно значение. у меня дело в том что чат бот выдает условия задачи и мне надо дописать функцию
const products = [{
name: 'Радар', price: 1300, quantity: 4
},
{
name: 'Сканер', price: 2700, quantity: 3
},
{
name: 'Дроид', price: 400, quantity: 7
},
{
name: 'Захват', price: 1200, quantity: 9
}];
function getAllPropValues(propName) {
// Пиши код ниже этой строки
//вот тело функции:
let name = []
let price = []
let quantity = []
for (a of products) {
if (propName = name) {
name.push(a.name)
continue
}
if (propName = price) {
price.push(a.price)
continue
} if (propName = quantity) {
quantity.push(a.quantity)
continue
}
}
return propName
// Пиши код выше этой строки
}
Ответы (3 шт):
Автор решения: Konstantin_SH
→ Ссылка
Почитайте про операторы сравнения не стоит путать их с оператором присваивания (одинарным равно) Вам же Grundy написал комментарий про это. В
ifне пишите оператор присваивания, сравнивайте свойства!Вам надо возвращать массив, так возвращайте массив, а не то, что изначально передали в функцию!
Автор решения: Igor
→ Ссылка
const products = [
{ name: 'Радар', price: 1300, quantity: 4 },
{ name: 'Сканер', price: 2700, quantity: 3 },
{ name: 'Дроид', price: 400, quantity: 7 },
{ name: 'Захват', price: 1200, quantity: 9 }
];
function getAllPropValues(propName) {
return (!products.length || !(propName in products[0]))?
[] : products.map(i => i[propName]);
}
console.log(JSON.stringify(getAllPropValues('name')));
console.log(JSON.stringify(getAllPropValues('price')));
console.log(JSON.stringify(getAllPropValues('quantity')));
console.log(JSON.stringify(getAllPropValues('noproperty')));
Автор решения: Tatiana
→ Ссылка
Все гораздо проще:
function getAllPropValues(propName) {
let valueArray = [];
for (const product of products) {
if (product.hasOwnProperty(propName)) {
valueArray.push(product[propName]);
}
}
return valueArray;
}