我有一个名为text.csv
的csv文件,其中包含以下内容:
shape,color,distance
circle,blue,4
square,red,2
circle,blue,7
circle,green,9
triangle,blue,1
square,green,3
octagon,blue,4
我想执行以下操作:
1.加载此数据
1.将加载的数据记录到控制台
1.按distance
对加载的数据进行排序
1.记录分类数据
下面是我的代码:
<script src="https://d3js.org/d3.v7.min.js"></script>
d3.csv('test.csv', d3.autoType).then(function(data) {
// INSPECTS THE RAW DATA
console.log(data);
// SORTS BY DISTANCE
let sortedData = data.sort(function (a, b) {
return d3.descending(a.distance, b.distance);
})
// LOGS SORTED DATA
console.log(sortedData);
})
在控制台中,我看到sortedData被***记录了两次***。
未记录data
变量(即原始未排序数据)。
为什么会发生这种情况?
谢谢你!
1条答案
按热度按时间pdsfdshx1#
Array.prototype.sort
会将数组排序在适当的位置。而且,您的sortedData
只会指向data
。因此,如果要保留两个数组(原始数组和排序后的数组),则必须复制它,例如使用
structuredClone
:第一个