如果我有对象的值,如何获得整个对象

时间:2018-09-10 11:57:20

标签: javascript arrays object

我有一个如下数组,

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

现在我的问题是,如果我与“ 4”在一起,那么我如何获得“ c:3”的值。

由于我是Vanilla JS的新手,请帮助我。

2 个答案:

答案 0 :(得分:0)

以下内容将找到具有值为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.valuesArray.prototype.someArray.prototype.filterclosures

答案 1 :(得分:0)

如果您要跟踪类似{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)

这样一来,您不必遍历collection即可跟踪特定值,甚至可以更改myObject.c值。