簡體   English   中英

Angular 2如何從對象數組獲取鍵值?

[英]Angular 2 how to get key value from object arrays?

我有object array

在此處輸入圖片說明

{"-LTYJbW1B3mhrdc6C64N":{"done":0,"name":"Job2","pt":5},"-LTYJcSOUh07SQcixP4x":{"done":0,"name":"Job3","pt":5}}

看來,有兩個帶有隨機密鑰的對象( --LTYJbW1B3mhrdc6C64N ),我想獲取這些密鑰,我該怎么做?

HTML:

<div class="task-block" *ngFor="let task of objectValues(team.tasks)">
 <p >{{task.name}}</p>
 <button mat-raised-button (click)="updateTask(task)">Done!</button>
  <i class="material-icons deletetask">close </i></div>

TS:

objectValues(obj) { 
  if(obj){
    console.log(JSON.stringify(obj))
    return Object.values(obj || {});
  }

  }



updateTask(task){
      console.log(task.key); //here I want to get task.key
    }

html

<div class="task-block" *ngFor="let task of tasks | keyvalue">
  <div (click)="itemClick(task.key)>{{task | json}}</div>
</div>

ts

export class AppComponent  {
  task = {
    "-LTYJbW1B3mhrdc6C64N": {"done":0,"name":"Job2","pt":5},
    "-LTYJcSOUh07SQcixP4x":{"done":0,"name":"Job3","pt":5}
  };

  itemClick(key) {
     console.log(key);
  }
}

您只需要Object.keys()

 let obj = { "-LTYJbW1B3mhrdc6C64N":{"done":0,"name":"Job2","pt":5}, "-LTYJcSOUh07SQcixP4x":{"done":0,"name":"Job3","pt":5} } let op = Object.keys(obj); console.log(op); 

這些對象是否也在數組中?還是它們自己存在?

如果它們在數組中,則可以使用它來遍歷對象鍵,這將在其中給出“名稱”和那里的子值

Object.keys(obj).forEach(function(key) {
console.log(key, obj[key]);
});

在您的情況下,您只需要第一級名稱。 只是object.keys應該可以解決問題。

console.log(Object.keys(obj));

資料來源: Javascript對象循環

您可以使用Object.keys ,它將為您提供對象的鍵數組。

我希望這可以解決問題。

 let obj = {"-LTYJbW1B3mhrdc6C64N":{"done":0,"name":"Job2","pt":5},"-LTYJcSOUh07SQcixP4x":{"done":0,"name":"Job3","pt":5}} let keysOfObj = Object.keys(obj) console.log("keys of the obj =>", keysOfObj) 

var keys = Object.keys(YourObject)
console.log(keys)
// ["key1", "keys2",...]


updateTask(task){
   var keys = Object.keys(task)
   console.log(keys[0]);
   return keys[0]
}

MDN Object.keys()

暫無
暫無

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

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