gpt4 book ai didi

javascript - 在javascript中迭代多个数组

转载 作者:行者123 更新时间:2023-12-03 09:36:50 26 4
gpt4 key购买 nike

我的数据数组如下:

 totalDays = ["mon", "tue", "wed", "thu", "fri", "sat", "sun"],
saleDays = ["tue", "thu"],
sale = [314,240].

我需要以这样的方式修改“销售”数组,即销售数组应与具有相应销售天数的totalDays数组进行比较,如果当天存在销售,则包​​括销售数组金额,否则在销售数组中包括0。

对于上面的示例,我需要销售数组输出,如下所示:

sale  = [0,314,0,240,0,0,0].

代码:

 var arr = _.zip(saleDays, sale);
var newSale = [];
var saleAmt = 0;
_.forEach(arr, function(element) {
saleAmt = totalDays.indexOf(element[0]) > -1 ? element[1] : 0;
newSale.push(saleAmt);
});

但问题是在这种情况下,indexOf条件总是返回true,所以我尝试使用嵌套循环,例如:

    _.forEach(totalDays, function(dt) {
_.forEach(arr, function(element) {
saleAmt = dt === element[0] ? element[1] : 0;
newSale.push(saleAmt);
});
});

但在本例中,循环运行了“m * n”次。其中 m 是“totalDays”的长度,“n”是“arr”的长度。我想避免这种情况,循环应该运行totalDays.length次并产生结果。请帮助我实现愿望的输出。

根据@Tao P. R.的建议,我正在尝试将同样的事情用于具有周开始日期的月份销售数组。

例如:

totalSale = ['Wed Jun 10 2015','Tue Jun 16 2015','Mon Jun 22 2015','Sun Jun 28 2015','Sat Jul 04 2015','Fri Jul 10 2015']
saleDays: [ 'Mon Jun 15 2015', 'Tue Jul 07 2015' ]
sale: [134,245]

现在我必须检查 TotalSale 的销售是在哪一周完成的。对于上面的例子我需要销售数据 = [134,0,0,0,245,0]我已经通过为 TotalSale 创建数组数组来尝试此操作,

var mappedSale = _.map(totalDays, function(d){ 
for(var j = 0; j < saleDays.length; j ++ ){
var i = d.indexOf(saleDays[j]);
if (i<0){ return 0 }
else return sale[i];
}
});

哪里,

totalDays = [['Wed Jun 10 2015',..'Mon Jun 15 2015'],['Tue Jun 16 2015',..'Sun Jun 21 2015'],...]

请告诉我这有什么问题吗?

最佳答案

您可以使用Array.prototype.maptotalDays数组与sale的相应值进行映射,如下所示:

 totalDays = ["mon", "tue", "wed", "thu", "fri", "sat", "sun"],
saleDays = ["tue", "thu"],
sale = [314,240];

// Output
var mappedSale = totalDays.map(function(d){
var i = saleDays.indexOf(d);
if (i<0){ return 0 }
else return sale[i];
});

alert(mappedSale); // <-- [0,314,0,240,0,0,0]

下划线等效的逻辑:

var mappedSale = _.map(totalDays, function(d){
var i = saleDays.indexOf(d);
if (i<0){ return 0 }
else return sale[i];
});

关于javascript - 在javascript中迭代多个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31312015/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com