У меня есть массив, как показано ниже,
let x = [{a: 1, b: 2}, {c: 3, d: 4}, {e: 5, f: 6}, {g: 7, h: 8}]
Теперь мой вопрос: если у меня есть «4», то как я могу получить значение «c: 3».
Пожалуйста, помогите мне, так как я новичок в ванили JS.
Если вы хотите отслеживать объект типа {c: 3, d: 4}, просто держите его ссылку отдельно, чтобы вам даже не приходилось искать объект на первом месте, так как, очевидно, вы определяете x сами.
let myObject = { c: 3, d: 4 } let x= [{ a: 1, b: 2 }, myObject, { e: 5, f: 6 }, { g: 7, h: 8 }] console.log(myObject) myObject.c = 10 console.log(myObject) console.log(x)
таким образом, вам вообще не нужно обходить коллекцию для отслеживания определенного значения, вы даже можете изменить значение myObject.c.
Следующий объект найдет любой объект, имеющий прямое свойство со значением 4:
const valueIs = (value) => (object) => Object.values(object).some((v) => v === value); let x = [{ a: 1, b: 2 }, { c: 3, d: 4 }, { e: 5, f: 6 }, { g: 7, h: 8 }]; console.log(x.filter(valueIs(4)));
Использование Object.values , Array.prototype.some , Array.prototype.filter и замыкания