2017-07-15 69 views
0

我想从一个数组对象访问数据:之后使用变量。 (代替属性名称)。 JavaScript的

{ 
    "results": [{ 
     "ID": "aaa", 
     "12/06/2017": "1", 
     "13/06/2017": "0", 
     "14/06/2017": "1", 
     "15/06/2017": "1", 
     "16/06/2017": "0", 
     "17/06/2017": "1", 
     "18/06/2017": "0" 
    } 
    ] 
} 

我通常这样做的:

$.each(data.results, function (index, item) { 
        var eachrow = "<tr>" 
        + "<td>" + item.ID + "</td>" 
        ect... 
    $('#tbody').append(eachrow); 
         } 

但在这种情况下,属性名称将与每个搜索改变,因此我不能只写他们。我知道什么值将搜索之前,所以我可以将它们分配给变量,但item.variable不起作用。 我试过了:item。[variable]和item.arr [1]但我无法获取任何东西。

感谢您的帮助

+0

如果你不知道密钥,你可以通过'object.keys' – adeneo

+0

来获取它们。输出:功能键(){ [native code] } ??? – james

+0

我是个笨蛋,不过console.log(Object.keys(data.results));输出仍然无用的[“0”] – james

回答

0

假设这是您的result

const result = { 
    "results":[ 
    { 
     "ID":"aaa", 
     "12/06/2017":"1", 
     "13/06/2017":"0", 
     "14/06/2017":"1", 
     "15/06/2017":"1", 
     "16/06/2017":"0", 
     "17/06/2017":"1", 
     "18/06/2017":"0" 
    } 
    ] 
}; 

那么你可以做些什么来让所有的键值对是

const firstResult = result.results[0]; 
Object.keys(firstResult) 
    .map(key => { 
    const value = firstResult[key]; 
    return { key, value }; 
    }) 
    .forEach(process); 

而且process功能像这样:

const process = ({ key, value }) => { 
    console.log(`The value of ${key} is ${value}`); 
};