【发布时间】:2018-10-16 00:07:02
【问题描述】:
我有两个对象数组:
[
0: {key1: value1, key2: value2, key3: value3},
1: {key1: value1, key2: value2, key3: value3}
]
[
0: {stop_id: 173, file_id: "1", key_type: null, key_value: "0020", seg_beg: 32},
1: {stop_id: 176, file_id: "1", key_type: null, key_value: "0201", seg_beg: 10},
2: {stop_id: 176, file_id: "1", key_type: null, key_value: "0201", seg_beg: 10}
]
我需要检查第一个对象中任何键的值是否与第二个对象中的 key_value...键的任何值匹配,然后设置一个变量,直到匹配记录中的 stop_id 值。像这样:
if(object1.value === object2.key_value){
match = object2[iterator].stop_id;
}
为了简化这一点,我试图只获取第一个对象的值:
//pd.segs is object 1
let pdSegValues = [];
for(let i=0;i<pd.segs.length;i++){
pdSegValues.push(Object.values(pd.segs[i]));
}
但这又让我得到了一个数组数组,基本上让我回到了同样的境地。我患有脑筋急转弯,并且无可否认地有循环的弱点。谁能告诉我一个体面的方法来完成我在这里需要的东西?
【问题讨论】:
-
and then do something这可能很重要——您是否需要对匹配的对象进行操作,还是只需要知道是否存在匹配项?第一个产生简单的代码,第二个产生非常复杂的代码 -
我需要设置一个变量,进一步向上等于匹配记录的 stop_id 值
-
相应地编辑了问题:)
-
您是否只需要一个是/否布尔值来判断匹配是否存在?
-
@mark meyer,不,我需要设置一个更高的变量,直到匹配记录的 stop_id 值。请参阅上面编辑过的问题
标签: javascript arrays json for-loop key-value