在另一个数组中排序一个数组,并用0或空字符串javascript替换不匹配的数据
我有一个数组,它定义了在图表中绘制数据的顺序 数据来自另一个数组。我有一个函数,可以根据订单数组对数据数组进行排序,但是如果数据在特定项或订单数组中确实有数据,则需要添加0或空字符串 我的例子是: 订单数组:在另一个数组中排序一个数组,并用0或空字符串javascript替换不匹配的数据,javascript,arrays,sorting,Javascript,Arrays,Sorting,我有一个数组,它定义了在图表中绘制数据的顺序 数据来自另一个数组。我有一个函数,可以根据订单数组对数据数组进行排序,但是如果数据在特定项或订单数组中确实有数据,则需要添加0或空字符串 我的例子是: 订单数组: const tooltipsLabel = [ "02 Abril 2021", "03 Abril 2021", "04 Abril 2021", "05 Abril 2021", &qu
const tooltipsLabel = [
"02 Abril 2021",
"03 Abril 2021",
"04 Abril 2021",
"05 Abril 2021",
"06 Abril 2021",
"07 Abril 2021",
"08 Abril 2021"
]
数据阵列:
const dayData = {
01 Abril 2021: (2) [{…}, {…}],
04 Abril 2021: (7) [{…}, {…}, {…}, {…}, {…}, {…}, {…}],
05 Abril 2021: (3) [{…}, {…}, {…}],
06 Abril 2021: (7) [{…}, {…}, {…}, {…}, {…}, {…}, {…}],
07 Abril 2021: (3) [{…}, {…}, {…}],
08 Abril 2021: (6) [{…}, {…}, {…}, {…}, {…}, {…}],
}
如您所见,没有02和03 Abril 2021的数据
我的实际排序功能如下:
const mapOrder = (array, order, key) => {
array.sort(function (a, b) {
var A = a[key],
B = b[key];
if (order.indexOf(A) > order.indexOf(B)) {
return 1;
} else {
return -1;
}
});
console.log(array);
return array;
};
我这样调用函数:
mapOrder(Object.entries(dayData),tooltipsLabel,day[0]);
它对我的数据进行排序,但我需要0或空,用于02和03 Abril 2021,就像一个附加点一样,我只需要数组中每个日期的数据长度
谢谢你的帮助。谢谢你的回答。数据是我在两个数组中写入的,我的预期输出类似于[08 Abril 2021:6,07 Abril 2021:3,06 Abril 2021:7,05 Abril 2022:3,04 Abril 2021:7,03 Abril 2021:0,02 Abril 2021:0,01 Abril 2021:2]。如果答案可以是[6,3,7,3,7,0,0,2],保持顺序,但只有长度才是理想的。您只需根据需要对
tooltipsLabel
数组进行排序,然后map()
it从dayData
数组中检索元素<代码>常量结果=tooltipsLabel.map(日期=>dayData[day]?。长度??0)代码>吉米·蒙特斯,@pilchard-answer解决了你的问题吗?@Nur-yes,它完全可以满足我对它的需求,感谢@pilchard为你提供的时间和你的精彩回复。