题目描述补充:
给定一个二维数组colors
,其中每个元素代表一个物体,物体的颜色由其内部子数组的第一个元素表示(假设颜色以字符串形式给出,如"red"
, "blue"
, "green"
等),剩余元素可能包含该物体的其他属性(如大小、重量等,但本题不考虑这些属性)。要求编写一个函数,根据颜色的字典序对数组进行排序,即相同颜色的物体应该排在一起,并且颜色按照字典序从小到大排列。
示例输入:
[
["red", 10],
["blue", 5],
["green", 8],
["red", 20],
["blue", 15]
]
示例输出:
[
["blue", 5],
["blue", 15],
["green", 8],
["red", 10],
["red", 20]
]
PHP代码示例:
function sortColors($colors) {
usort($colors, function($a, $b) {
return strcmp($a[0], $b[0]);
});
return $colors;
}
// 示例用法
$colors = [["red", 10], ["blue", 5], ["green", 8], ["red", 20], ["blue", 15]];
$sortedColors = sortColors($colors);
print_r($sortedColors);
Python代码示例:
def sort_colors(colors):
return sorted(colors, key=lambda x: x[0])
# 示例用法
colors = [["red", 10], ["blue", 5], ["green", 8], ["red", 20], ["blue", 15]]
sorted_colors = sort_colors(colors)
print(sorted_colors)
JavaScript代码示例:
function sortColors(colors) {
return colors.sort((a, b) => a[0].localeCompare(b[0]));
}
// 示例用法
const colors = [["red", 10], ["blue", 5], ["green", 8], ["red", 20], ["blue", 15]];
const sortedColors = sortColors(colors);
console.log(sortedColors);
码小课网站提示: 码小课网站中有更多关于算法和数据结构的相关内容,包括排序算法、数组操作、函数式编程等,欢迎大家访问学习,不断提升自己的编程能力。