iT邦幫忙

0

把物件陣列變成一個陣列

var users = [
{ 'user': 'fred', 'age': 48 },
{ 'user': 'barney', 'age': 34 },
{ 'user': 'fred', 'age': 42 },
{ 'user': 'barney', 'age': 36 }
];
要把陣列變出下面這樣子
[['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]]
然後做排序
我目前是做了兩個新陣列 但是要怎麼合併變成這樣?



let name=[]
let age =[]
name =users.map(item=>{
  return item.user
})
console.log(name)

age =users.map(item=>{
  return item.age
})
let all =[[...name,...age]];
console.log(all);

拜託給我一個方向謝謝@@

看更多先前的討論...收起先前的討論...
users.reduce((pre,cur)=>{pre.push([cur.name,cur.age]);return pre},[]);
Luis-Chen iT邦新手 4 級 ‧ 2020-04-24 18:37:03 檢舉
users.sort((a,b) => a.age - b.age).map((user) => [user.user,user.age]) 但好奇為什麼要轉成陣列
Luis-Chen iT邦新手 4 級 ‧ 2020-04-24 18:38:56 檢舉
https://jsfiddle.net/jydLcwm3/
Luis-Chen iT邦新手 4 級 ‧ 2020-04-24 18:58:35 檢舉
排序的話你拆成兩個陣列也很奇怪,感覺你轉成陣列是為了user[0][0]這樣的操作?
yolala iT邦新手 5 級 ‧ 2020-04-24 19:24:11 檢舉
是讀啊

1 個回答

1
theRookie
iT邦新手 4 級 ‧ 2020-04-26 14:25:38

大概這樣吧
有些公司喜歡把key全去掉避免有人盜api降低可讀靠文檔對接
(雖然沒啥用就是了)

let users = [
{ 'user': 'fred', 'age': 48 },
{ 'user': 'barney', 'age': 34 },
{ 'user': 'fred', 'age': 42 },
{ 'user': 'barney', 'age': 36 }
];

function objArrayToArr(array){
    return array.map((el)=>([Object.values(el)]))
}
console.log(objArrayToArr(users))

我要發表回答

立即登入回答