簡體   English   中英

如何從Angular中的動態鍵對值獲取數據

[英]how to get data from dynamic key pair value in Angular

這是我的問題,我無法從下面的動態json獲取動態密鑰對值是我的json

var d =   {
      "pexels-photo.jpeg": {
        "information": "laptop",
        "desc": {
          "mimetype": "image/jpeg",
          "id": "shsj44",
          "file_id": "pexels-photo.jpeg"
        },
        "_id": "shsj44"
      }
    }

在這里我嘗試下面

Object.keys(d).forEach(function(key){
    var value = d[key];
     console.log(key + ':' + value) ;
});

我想獲取id值“ _id”和“ file_id”值

您可以使用解構分配

 var d = {"dynamic": {"information": "laptop","desc": { "mimetype": "image/jpeg","id": "shsj44","file_id": "pexels-photo.jpeg" },"_id": "shsj44"}} let dynamicKey = Object.keys(d)[0] let {[dynamicKey]:{desc:{ file_id },_id}} = d console.log(file_id, '\\n', _id) 

這是因為value之前的+ ,它將嘗試連接該值,您將看到[object object]

 var d = { "pexels-photo.jpeg": { "information": "laptop", "desc": { "mimetype": "image/jpeg", "id": "shsj44", "file_id": "pexels-photo.jpeg" }, "_id": "shsj44" } } Object.keys(d).forEach(function(key) { let value = d[key]; console.log(key + ' : ', value); console.log(key + ' : ', value.desc.id); }); 

您需要檢查該值是否為對象,如果是,則需要再次對其進行循環。

以下代碼將打印d每個鍵值對

export class AppComponent implements OnInit {
  d = {
    'pexels-photo.jpeg': {
      'information': 'laptop',
      'desc': {
        'mimetype': 'image/jpeg',
        'id': 'shsj44',
        'file_id': 'pexels-photo.jpeg'
      },
      '_id': 'shsj44'
    }
  };

  ngOnInit(): void {
    this.calc(this.d);
  }

  calc(val) {
    Object.keys(val).forEach(key => {
      const value = val[key];
      if (typeof (value) === 'object') {
        this.calc(value);
      } else {
        console.log(key + ':' + value);
      }
    });
  }

}

嘗試這個 :

 var d = { "pexels-photo.jpeg": { "information": "laptop", "desc": { "mimetype": "image/jpeg", "id": "shsj44", "file_id": "pexels-photo.jpeg" }, "_id": "shsj44" } }; Object.keys(d).filter(key => { Object.keys(d[key]).filter(item => { if (item === 'desc') { Object.keys(d[key][item]).filter(elem => { if ((elem === 'id') || (elem === 'file_id')) { console.log(elem + ' : ' + d[key][item][elem]); } }); } }) }); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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