#javascript #node.js
#javascript #node.js
Вопрос:
У меня есть массив JSON, содержащий несколько объектов. Я хотел бы возвращать объекты, содержащие определенное значение. Например, я хотел бы вернуть
[
service_wog: {
count: 48,
popular: false,
code: 33,
price: 20,
id: 76,
service: 'WOG',
slug: 'wog'
},
service_gojoy: {
count: 48,
popular: false,
code: 33,
price: 20,
id: 77,
service: 'GoJoy',
slug: 'gojoy'
}
]
Как мне вернуть объект, содержащий ‘gojoy’ в slug?
Я попробовал следующий способ:
let u = Object.values(a);
u.filter(i => i.slug === 'gojoy');
Похоже, это не работает… Я неправильно понял, как filter()
это работает?
Ответ №1:
Нет, кажется, вы используете filter
правильно. Однако, что вы используете в качестве входных данных:
[
service_wog: {
count: 48,
popular: false,
code: 33,
price: 20,
id: 76,
service: 'WOG',
slug: 'wog'
},
service_gojoy: {
count: 48,
popular: false,
code: 33,
price: 20,
id: 77,
service: 'GoJoy',
slug: 'gojoy'
}
]
это не допустимый массив, а объект.
Поэтому вместо [
and ]
— {
and }
следует использовать:
{
service_wog: {
count: 48,
popular: false,
code: 33,
price: 20,
id: 76,
service: 'WOG',
slug: 'wog'
},
service_gojoy: {
count: 48,
popular: false,
code: 33,
price: 20,
id: 77,
service: 'GoJoy',
slug: 'gojoy'
}
}
Итак, в конечном итоге:
const a = {
service_wog: {
count: 48,
popular: false,
code: 33,
price: 20,
id: 76,
service: 'WOG',
slug: 'wog'
},
service_gojoy: {
count: 48,
popular: false,
code: 33,
price: 20,
id: 77,
service: 'GoJoy',
slug: 'gojoy'
}
}
let u = Object.values(a);
console.log(u.filter(i => i.slug === 'gojoy'));