Javascript 对数组进行排序,并将项目放入图表中
我正在使用PlotlyJS生成一个简单的折线图。我需要的数据来自数组的数组。我的javascript技能不强 使用控制台日志,我可以看到阵列: 问题是我需要根据id对其进行排序(请参阅下面的console.log) 首先,我创建了一个for循环:Javascript 对数组进行排序,并将项目放入图表中,javascript,Javascript,我正在使用PlotlyJS生成一个简单的折线图。我需要的数据来自数组的数组。我的javascript技能不强 使用控制台日志,我可以看到阵列: 问题是我需要根据id对其进行排序(请参阅下面的console.log) 首先,我创建了一个for循环: for (data in ndvi_array) { console.log('id: '+ndvi_array[data][0]+', data: '+ndvi_array[data][1]+', index: '+ndvi_array[dat
for (data in ndvi_array) {
console.log('id: '+ndvi_array[data][0]+', data: '+ndvi_array[data][1]+', index: '+ndvi_array[data][2]);
var data = [
{
x: ndvi_array[data][1],
y: ndvi_array[data][2],
type: 'scatter'
}
];
Plotly.newPlot('ndvi-index', data);
};
console.log(ndvi_array[data][0].sort((a,b)=>a-b));
然后,我尝试在for循环中使用以下代码对数组进行排序:
for (data in ndvi_array) {
console.log('id: '+ndvi_array[data][0]+', data: '+ndvi_array[data][1]+', index: '+ndvi_array[data][2]);
var data = [
{
x: ndvi_array[data][1],
y: ndvi_array[data][2],
type: 'scatter'
}
];
Plotly.newPlot('ndvi-index', data);
};
console.log(ndvi_array[data][0].sort((a,b)=>a-b));
使用此选项时,我会看到错误:
未捕获类型错误:ndvi_数组[data][0]。排序不是函数
如何解决它?您可以对输入数组(ndvi_数组)进行排序,如下所示-
var输入阵列=[
[2,‘abc’,123],
[12,'阿布德',124],
[1,‘abe’,125],
[7,‘abf’,126]
]
排序(([id1],[id2])=>id1-id2)
console.log(inputArray)
您可以根据我们想要在示例中使用的索引对数组进行排序,我们在数组的数组中只有1
值,因此我们将使用数组的0
索引
:
让ndvi_数组=[[0]、[5]、[3]、[1]、[9]]
让SorterDarray=ndvi_数组进行排序(函数(a,b){
返回b[0]-a[0];
});
log(sortedArray)
当您尝试排序方法时,它是在处理值而不是数组
假设我们有一个数组:
x=[[6],[2]]
- x[0]-我们正在访问第一个值,它是一个数组[6]
- x[0][0]-我们正在访问第一个数组的第一个值,即6
如果我们尝试x[0][0].sort(),我们将得到错误,因为sort是数组方法
正确的一点:
x = [[6],[2],[1],[8]]
x.sort(function(a,b){ return a[0]- b[0] })
根据您的指示,我看到了相同的错误:uncaughttypeerror:ndvi_数组[data][0]。排序不是一个函数
Yes,因为ndvi_数组[data][0]不是数组,只需使用ndvi_数组即可。sort(..)您好!虽然这段代码可以解决这个问题,但如何以及为什么解决这个问题将真正有助于提高您的帖子质量,并可能导致更多的投票。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请在回答中添加解释,并说明适用的限制和假设。