鍍金池/ 問答/HTML/ vue object數(shù)組鍵值排序的問題

vue object數(shù)組鍵值排序的問題

有一個(gè)這種數(shù)組,里面的鍵值(key)是無序的,我想輸出的時(shí)侯按一致的順序輸出,有什么辦法嗎?即渲染出所有元素的鍵值順序都按東、西、南、北、中順序排序,或按其它序列排序,總之每個(gè)元素的鍵值的順序要一致。

let arr = [
  {'西': '', '南': '', '北': '', '中': '', '東': ''},
  {'東': '', '南': '', '西': '', '北': '', '中': ''},
  {'東': '', '南': '', '西': '', '北': '', '中': ''}
]

以下是以上代碼渲染后的截圖
圖片描述

回答
編輯回答
離夢

變換一下數(shù)據(jù)結(jié)構(gòu)

let a = [
    [
        { "11": "" },
        { "1": "" },
        { "2": "" },
    ]   
]
let b={
    "11":"",
    "1":"",
    "2":"",
}
for(let i in a){
    for(let j in a[i]){
        console.log(a[i][j])
    }
}
 
/* 
{ '11': '' }
{ '1': '' }
{ '2': '' }
 */

for(let k in b){
    console.log(k+":"+b[k])
}
/* 
1:
2:
11:
*/
2017年8月29日 23:34
編輯回答
離人歸

對象是無序的 按理來說不應(yīng)該對對象排序
可以使用一個(gè)數(shù)組來控制順序

let config = ['東','西','南','北','中'];
let arr = [
  {'西': '', '南': '', '北': '', '中': '', '東': ''},
  {'東': '', '南': '', '西': '', '北': '', '中': ''},
  {'東': '', '南': '', '西': '', '北': '', '中': ''}
];

arr.forEach(item=>{
  config.forEach(key=>{
    console.log(key,item[key]);
  })
})

補(bǔ)充 非要按照一個(gè)順序的話可以 根據(jù)碼值排序

let arr = [
  {'東': '', '西': '', '南': '', '中': '', '北': ''},
  {'東': '', '南': '', '西': '', '北': '', '中': ''},
  {'東': '', '南': '', '西': '', '北': '', '中': ''}
];

arr.forEach(v=>{
  console.log(Object.keys(v).sort((a,b)=>a>b?1:a<b?-1:0));//字符串比大小會根據(jù)碼值來比較
})
2018年6月9日 08:28
編輯回答
傻叼
let arr = [{
    a: 1,
    b: ''
},
{
    b: 3,
    a: 4
}];

let newarr = arr.map(m => {
    return (({a ,b}) => {
        return {a,b}
    })(m)
})

2018年8月13日 13:37