[英]Array of keys, find values in json object
我有一個包含鍵的數組,我需要在 json 對象數組中找到。
我的數組:
arr= ['abc', 'xyz', 'pqr']
d.數據格式:
[{'abc': 123, 'xyz': 321, 'pqr': 345}, {'abc': 111, 'xyz': 222, 'pqr': 333}.....]
我有一個 json object。
arr 是一個鍵列表,我需要在 json 對象數組中找到它們的值。
我有一個巨大的數組(arr),這就是為什么我不想對其進行硬編碼。
我試圖這樣做:
arr.forEach(x => {
let valss = d.data.map(structure => Object.values(structure.x));
});
我收到Uncaught (in promise) TypeError: Cannot convert undefined or null to object
。
如何獲取數組中鍵的值?
嘗試
for(var j = 0; d.data.length; j++){
for(var i = 0; i < arr.length; i++){
let valss = d.data[j][arr[i]]
}
}
提供您的數據樣本,您需要做的就是遍歷字典中的每個 object,然后遍歷您的鍵以獲取字典中的鍵。 為您提供您期望的價值。
您可以執行以下操作:
一個結果數組中的所有值:
var arr = ['abc', 'xyz', 'pqr']; var data = [{'abc': 123, 'xyz': 321, 'pqr': 345}, {'abc': 111, 'xyz': 222, 'pqr': 333}]; var result = []; for(let item of data) { arr.forEach(function(el, i) { if(item.hasOwnProperty(el)) { result.push(item[el]); } }); } console.log(result);
或者為數據數組中的每個 object 單獨子 arrays:
var arr = ['abc', 'xyz', 'pqr']; var data = [{'abc': 123, 'xyz': 321, 'pqr': 345}, {'abc': 111, 'xyz': 222, 'pqr': 333}]; var result = []; for(let item of data) { var temp = []; arr.forEach(function(el, i) { if(item.hasOwnProperty(el)) { temp.push(item[el]); } }); if(temp.length > 0) { result.push(temp); } } console.log(result);
如果要獲取data
數組中對象的值,只需通過它 map 並返回值即可。 像這樣: data.map((o) => Object.values(o));
let arr = ["abc", "xyz", "pqr"]; let data = [ { abc: 123, xyz: 321, pqr: 345 }, { abc: 111, xyz: 222, pqr: 333 }, ]; let values = data.map((o) => Object.values(o)); console.log(values) // [ [ 123, 321, 345 ], [ 111, 222, 333 ] ]
你可以嘗試這樣的事情:
var arr= ['abc', 'xyz', 'pqr'] var data = [{'abc': 123, 'xyz': 321, 'pqr': 345}, {'abc': 111, 'xyz': 222, 'pqr': 333}] var values = arr.map( key => { let vals = data.map( val => { return val[key] }) return vals }) console.log(values)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.