Cho*_*hoy 2 javascript arrays sorting
我有一个数组,当我最终在文档中输出数组时,对象的顺序很重要.但是,我也在函数中对数组进行排序以找到最高值.问题是我运行函数后找到最高值,我无法得到数组的原始排序顺序.
// html document
var data = [75,300,150,500,200];
createGraph(data);
// js document
function createGraph(data) {
var maxRange = getDataRange(data);
// simpleEncode() = google encoding function for graph
var dataSet = simpleEncode(data,maxRange);
}
function getDataRange(dataArray) {
var num = dataArray.sort(sortNumber);
return num[0];
}
Run Code Online (Sandbox Code Playgroud)
我还尝试将数据设置为dataA和dataB,并使用getDataRange函数中的dataB和simpleEncode函数中的dataA.无论哪种方式,数据总是最终从最高到最低排序.
正如您所发现的那样,sort数组就地修改了数组.
为了防止这种情况,您需要sort()单独的数组副本,以便原始数组不受影响.
您可以通过调用slice()以下方法复制数组:
var num = dataArray.slice().sort(sortNumber);
Run Code Online (Sandbox Code Playgroud)
您只需找到你的阵列的最高值采用的Math.max方法是,你并不需要对它进行排序:
function getDataRange(dataArray) {
return Math.max.apply(Math, dataArray);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1133 次 |
| 最近记录: |