對 JavaScript 中的多維陣列進行排序
假設,我們有以下陣列 −
const arr = [ ["A","F","A","H","F","F"], ["F","A","A","F","F","H"] ];
我們需要寫一個 JavaScript 函式,輸入一個這樣的陣列。
該函式應根據以下規則對給定陣列的所有子陣列進行內部排序 −
- 如果元素不是“A”或“F”,它們應保持其位置
- 如果元素為“A”或“F”,它們應按字母順序排序
因此,以上陣列的最終輸出應如下所示 −
const output = [ ["A","A","A","H","A","F"], ["F","F","F","F","F","H"] ];
請注意,如果排序演算法這樣做,則來自子陣列的元素可以更改其陣列。
示例
const arr = [
["A","F","A","H","F","F"],
["F","A","A","F","F","H"]
];
const customSort = (arr = []) => {
const order = [].concat(...arr.slice()),
res = []; order.forEach((el, ind) => {
if (el === 'A') {
const fIndex = order.indexOf('F');
if (fIndex < ind){
order[fIndex] = 'A'; order[ind] = 'F';
};
};
})
arr.forEach(el => res.push(order.splice(0, el.length)))
return res;
}
console.log(customSort(arr));輸出
控制檯中的輸出將是 −
[ [ 'A', 'A', 'A', 'H', 'A', 'F' ], [ 'F', 'F', 'F', 'F', 'F', 'H' ] ]
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP