2014-05-21 110 views
0

我有一个全局的数组,我声明为如何访问Javascript 2D对象数组?

var fileMappings = []; 

我做了一些工作,并添加一行到阵列像这样:

fileMappings.push({ buttonNumber: number, audioFile: file }); 

,如果我做一个JSON.stringify(fileMappings)我得到这个:

[{“buttonNumber”:”btn11”,”audioFile”:{0A0990BC-8AC8-4C1C-B089-D7F0B30DF858}}, 
{“buttonNumber”:”btn12”,”audioFile”:{2FCC34A6-BD1A-4798-BB28-131F3B546BB6}}, 
{“buttonNumber”:”btn13”,”audioFile”:{53A206EC-7477-4E65-98CC-7154B347E331}}] 

如何访问“btn11”等的GUID?

+1

fileMappings [0] [“audioFile”] –

+1

我可以建议学习一种您将使用的语言吗? https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array - 这是101基础,很容易找到。 –

回答

2

由于JavaScript数组不支持键,我建议您使用一个对象。否则,您必须每次遍历整个数组以查找所需的密钥。

var fileMappings = {}; 

代替push()而且,定义一个新的属性:

fileMappings[number] = { buttonNumber: number, audioFile: file }; 

这样,您就可以与fileMappings['btn11']

1

可以遍历数组成员找到按钮来访问你的对象,然后返回它的GUID:

function findGUID(arr, buttonNumber) { 
    for (var i=0, iLen=arr.length; i<iLen; i++) [ 
    if (arr[i].buttonNumber == buttonNumber) { 
     return arr[i].audioFile; 
    } 
    } 
    // return undefined - buttonNumber not found 
} 

或者如果你想使用E S5功能:

function getGUID(arr, buttonNumber) { 
    var guid; 
    arr.some(function(obj) { 
      return obj.buttonNumber == buttonNumber && (guid = obj.audioFile); 
      }); 
    return guid; 
} 

但我认为第一个更简单,更容易维护。