[英]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
}
<div class="task-block" *ngFor="let task of tasks | keyvalue">
<div (click)="itemClick(task.key)>{{task | json}}</div>
</div>
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]
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.