我有一个如下数组,
let x = [{a:1,b:2},{c:3,d:4},{e:5,f:6},{g:7,h:8}]
现在我的问题是,如果我与“ 4”在一起,那么我如何获得“ c:3”的值。
由于我是Vanilla JS的新手,请帮助我。
答案 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.values,Array.prototype.some,Array.prototype.filter和closures
答案 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值。