属性的访问属性Javascript

Access property of a property Javascript

应该是一些基础知识,但是google了2天没找到解决方法.. 不管怎样,就在这里。 我有一个

array_1 = [1,2,3...]

其中每个元素都是唯一的,即是 ID 另外,我有一个

Obj_1 = {2001=[2073,183,11],2011=[101,7,83,179], 2089=[1,11], ...}

目标:将 Obj_1 的每个属性的数组元素与 array_1 的元素匹配,如果匹配,则添加属性 - 匹配元素的 ID(来自 array_1) -到 Obj_2 并将匹配值(Obj_1)中的整个数组添加到此属性。 例子。当我遍历 Obj_1 的属性 2001 时,ID 11 将匹配数组。然后我想将属性 11 添加到具有值的 Obj_2 中,以便最后

Obj_2 = {11:{2001:[2073,183,11],2089:[1,11]}, 7:{}, 1:{}..}

我编写了这段代码,将其保存为以下形式的数组,而没有添加来自 Obj_1 的属性键。

var Obj_2 = {};
var key1 = 0;
for (var i in array_1) {
Obj_2[array_1[i]] = []; 
for (var x in Obj_1){ 
  for (var m in Obj_1[x]){ 
    if (Obj_1[x][m]==array_1[i]){ 
      key1 = array_1[i];
      Obj_2[key1].push(Obj_1[x]); 

                                 }
                           } 
                      } 
                         } 

因此,我现在得到的结果是 Obj_2 = {11:[[2073,183,11],[1,11]], 7:[[]], 1:[[]] ...}

主要问题是我不知道

1. how to access the property of a property (especially with respect to the differences between when a property exists and when it doesn't)

2. how to add the value for the property of a property

指出正确的方向将不胜感激。只是尾注,它是 Google Script 上的一个脚本,但我认为它没有任何区别。

这里是小Fiddle

var indexes = [1, 3, 5];
var Obj_1 = {'100':[3,183,1],'200':[101,5,2,179],'300':[1,11]};
var Obj_2 = { };
var needle = 0;

for (var i in indexes) {
    needle = indexes[i];
    Obj_2['' + needle] = { };
    for (var prop_1 in Obj_1) {
        var haystack = Obj_1[prop_1];
        if (haystack.indexOf(needle) >= 0) {
            Obj_2[needle]['' + prop_1] = haystack;
        }
    }
}

console.log(Obj_2);

注意在Javascript中操作对象和数组时,它们的结构不同,但项目访问运算符([])是相同的。