2016-01-03 477 views
1

訪問關聯數組內關聯數組的數據是否可能?訪問關聯數組內的關聯數組的數據

例如,

foo = { 
    subFooA: 2, 
    subFooB: subFooA 
} 

foo = { 
    subFooA: 2 
} 

foo = { 
    subFooB: subFooA 
} 

CNC中 謝謝你的答案...所以我認爲這是不可能爲這個

filter = { 
    leadlag: { 
     parameters: { 
      K: 1, 
      fz: 20, 
      fp: 40, 
      wz: 2*math.pi*20, 
      wp: 2*math.pi*40 
     } 
    } 
} 

filter.leadlag.continuous = { 
    a: [filter.leadlag.parameters.K*filter.leadlag.parameters.wp*filter.leadlag.parameters.wz, filter.leadlag.parameters.K*filter.leadlag.parameters.wp], 
    b: [filter.leadlag.parameters.wp*filter.leadlag.parameters.wz, filter.leadlag.parameters.wz] 
} 

要更容易完成?

+0

在JS這些不被稱爲 「關聯數組」;他們被稱爲「對象」。 –

回答

1

回答你的問題v 2。 0:

是的,它是可能的和可讀的助手變量持有對該對象的引用。

var filter = { 
 
     leadlag: { 
 
      parameters: { 
 
       K: 1, 
 
       fz: 20, 
 
       fp: 40, 
 
       wz: 2 * Math.PI * 20, 
 
       wp: 2 * Math.PI * 40 
 
      } 
 
     } 
 
    }, 
 
    p = filter.leadlag.parameters; // helper variable for better accessing 
 

 
filter.leadlag.continuous = { 
 
    a: [p.K * p.wp * p.wz, p.K * p.wp], 
 
    b: [p.wp * p.wz, p.wz] 
 
} 
 
document.write('<pre>' + JSON.stringify(filter, 0, 4) + '</pre>');

0

首先是不可能的,而第二種方法,你幾乎有:

var foo = { 
    subFooA: 2 
}; 

foo.subFooB = foo.subFooA; 
+0

謝謝你的回答,你能看看我的編輯嗎? –

1

是的,它是可能的,您可以按照不同的模式,以及:

var foo = {} 
foo.subFooB = foo.subFooA = 2; 

我總是喜歡使用setter功能雖然作爲一種更清潔的方法:

function setFoo() { 
    return 2; 
} 
var foo = { 
    subfooA: setFoo(), 
    subFooB: setFoo() 
} 
+0

謝謝你的回答,你能看看我的編輯嗎? –