【发布时间】:2016-10-10 06:39:09
【问题描述】:
我正在编写一个脚本,在该脚本中,我必须根据内部数组的第二个元素对数组的 arr 进行排序。例如下面我提到的数组:
var newInv = [
[2, "Hair Pin"],
[3, "Half-Eaten Apple"],
[67, "Bowling Ball"],
[7, "Toothpaste"]
];
我想根据内部数组中的所有字符串值对该数组进行排序。所以结果应该是:
var result = [
[67, "Bowling Ball"],
[2, "Hair Pin"],
[3, "Half-Eaten Apple"],
[7, "Toothpaste"]
];
为此,我编写了以下脚本: 有没有其他方法可以做同样的事情?可能没有创建对象?
function arraySort(arr) {
var jsonObj = {};
var values = [];
var result = [];
for (var i = 0; i < arr.length; i++) {
jsonObj[arr[i][1]] = arr[i][0];
}
values = Object.keys(jsonObj).sort();
for (var j = 0; j < values.length; j++) {
result.push([jsonObj[values[j]], values[j]]);
}
return result;
}
var newInv = [
[2, "Hair Pin"],
[3, "Half-Eaten Apple"],
[67, "Bowling Ball"],
[7, "Toothpaste"]
];
console.log(arraySort(newInv));
【问题讨论】:
-
“没有创建 json 对象” - 你还没有创建一个“JSON 对象”(there's no such thing),你已经创建了一个“对象”。
标签: javascript arrays sorting