[JavaScript] 纯文本查看 复制代码
let obj = {
arrValue: [
['广东省', '0.400143678', '0.921666149', '0.9197356', '0.04875', '0.04047619'],
['北京市', '0.429216867', '0.968006563', '0.873073436', '0.04465383', '0.03539823'],
['上海市', '0.375123396', '0.933398153', '0.894736842', '0.036930179', '0.037974684'],
['四川省', '0.457677165', '0.96251802', '0.943161634', '0.024539877', '0.030120482'],
['台湾省', '0.421784473', '0.943089431', '0.906382979', '0.03414264', '0.022900763']
],
arrRank: [
['广东省'],
['北京市'],
['上海市'],
['四川省'],
['台湾省']
]
};
// 遍历arrValue第一个元素
for (let i = 0; i < obj.arrValue[0].length; i++) {
// 忽略第一列
if (i) {
// 排序(为了避免改变原数组,加了...解构)
let arrSort = [...obj.arrValue].sort((a, b) => a[i] - b[i]);
// 提取一列城市名称为数组,得到排序好的城市名称
arrSort = arrSort.map(item => item[0]);
// 遍历arrRank
obj.arrRank.forEach(element => {
// 添加排名
element.push(arrSort.indexOf(element[0]) + 1)
});
}
};
console.log('obj.arrRank', obj.arrRank);
// [
// ["广东省", 2, 1, 4, 5, 5],
// ["北京市", 4, 5, 1, 4, 3],
// ["上海市", 1, 2, 2, 3, 4],
// ["四川省", 5, 4, 5, 1, 2],
// ["台湾省", 3, 3, 3, 2, 1]
// ]