Как получить весь объект, если у меня есть значение объекта - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть массив, как показано ниже,

let x = [{a: 1, b: 2}, {c: 3, d: 4}, {e: 5, f: 6}, {g: 7, h: 8}]

Теперь мой вопрос: если у меня есть «4», то как я могу получить значение «c: 3».

Пожалуйста, помогите мне, так как я новичок в ванили JS.

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

Если вы хотите отслеживать объект типа {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.

0 голосов
/ 10 сентября 2018

Следующий объект найдет любой объект, имеющий прямое свойство со значением 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 и замыкания

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...