【问题标题】:How to perform for loop inside backticks in javascript?如何在javascript中的反引号内执行for循环?
【发布时间】:2020-07-05 15:18:59
【问题描述】:

我根据他们的餐厅 ID 按元素数组分组。

function grouparray(list,key)
   {
       return list.reduce(function(rv,x){
           (rv[x[key]] = rv[x[key]] || []).push(x);
           return rv;
       },{});
   };
   var group = grouparray(cartArray,"resturantid");

它会给出类似的输出

{1: Array(3), 2: Array(3)}

它是数组中的数组。

现在我想在反引号内循环 完整代码:

function displaycheckout()
{
    var cartArray = shoppingCart.listCart();

   function grouparray(list,key)
   {
       return list.reduce(function(rv,x){
           (rv[x[key]] = rv[x[key]] || []).push(x);
           return rv;
       },{});
   };
   var group = grouparray(cartArray,"resturantid");

    for(i in group)
    {

         output +=
         ` Resturant Name : ${group[i][0].resturant}
         `
         for(a in group[i]){
          `
            menu ${group[i][a].food}
          `
      }
}

但它不起作用

【问题讨论】:

  • 请不要标记不相关的标签
  • @Tushar group[ i ] 是该循环内的主循环,那里有餐厅菜单。
  • 尝试修改这个:for(let i of group)
  • 这似乎是XY problem。请张贴输入和预期输出?

标签: javascript ecmascript-6 template-literals


【解决方案1】:

您可以在Object.values 上使用Array#map

output +=
         ` Resturant Name : ${group[i][0]}
          ${Object.values(group[i]).map(({food})=>"Menu " + food).join("\n")}
         `

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-22
    • 2022-10-21
    • 2020-07-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多