簡體   English   中英

鍵數組,在 json object 中查找值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM