原文:在一个字符串数组中有红、黄、蓝三种颜色的球,且个数不相等、顺序不一致,请为该数组排序。使得排序后数组中球的顺序为:黄、红、蓝。 - 每天一个JavaScript小知识@Js中文网 · 码农进阶题库

原文地址:https://www.javascriptc.com/interview-tips/zh_cn/javascript/algorithm/

题目描述:

在一个字符串数组中有红、黄、蓝三种颜色的球,且个数不相等、顺序不一致,请为该数组排序。使得排序后数组中球的顺序为:黄、红、蓝。

例如:红蓝蓝黄红黄蓝红红黄红,排序后为:黄黄黄红红红红红蓝蓝蓝。

解题:

欢迎大佬们补充!!

  • 思路一:
let str = '红蓝蓝黄红黄蓝红红黄红';
let arr = str.split('');
let obj = {'黄': 0, '红': 1, '蓝': 2};
arr.sort((prev, next) => obj[prev] - obj[next])

console.log(arr); // 黄黄黄红红红红红蓝蓝蓝

扩展阅读: