前言
其實這本來應該是一個很基礎的問題了,但我之做一想記錄一下是因為之前因為對象轉數組的時候卡住了后來弄了出來,但最近再遇到這個問題時竟然又卡主了,所以,關於這個問題,如何把一個對象{'未完成':5, '已完成':8, '待確認':4, '已取消':6}轉為[{"未完成":5},{"已完成":8},{"待確認":4},{"已取消":6}],你已經知道如何操作了,那這篇文章你也就沒有必要看了。
對象的兩種取值方式
我們都知道,JS中對象有兩種取值方式,通過在.后面直接加屬性名取值,這也是我們最常使用的一種方式,例如:
let obj = {name: 'wan'};
console.log(obj.name); //wan
這是最普通的一種方式,還有一種方式我們用的不太多,就是使用[]包住屬性名取值,類似於數組那樣,例如
let obj = {name: 'wan'};
console.log(obj[name]); //wan
那二者之前有什么區別呢,如果對於一個已知的對象來說,幾乎是沒什么區別的,但是如果我們需要的對象的key是變量呢?這就回到了我們文章開始是提到的問題,如何將一個對象轉化為數組
將對象轉化為數組
我們文章開始例子中的對象是
let obj = {'未完成':5, '已完成':8, '待確認':4, '已取消':6};
如果目標數組只是為了得到對象的key的集合或者value的集合還是相對容易的
var arr = []
for (let i in obj) {
arr.push(obj[i]); //屬性
//arr.push(obj[i]); //值
}
console.log(arr);
如果像我文中開始的需求的話就只需要改變一下push進去的內容為一個對象即可
var arr = []
for (let i in obj) {
let o = {};
o[i] = obj[i];
arr.push(o)
}
console.log(arr);
后記
說到底還是思維不夠靈活在解決問題時就卡克了,說實話這不是一個什么難題,但是把自己思維限制死了之后就會覺得是個難題,謹記!