Javascript';回调&x27;函数不使用映射函数 //映射func以循环列表 const allExpesneHTML=allExpenses.map(费用=>{createListItem(费用)}); //join func连接字符串并删除逗号 const joinedAllExpenseHTML=allExpesneHTML.join(“”); //log(allExpesneHTML); expensetablel.innerHTML=联合AllExpenseHTML; ////侦听单击事件 元素。addEventListener(“单击”,AddExpenseTotTotal,false); //视图层 函数createListItem({desc,amount}){ 返回` ${desc} 2021年3月11日 ${amount} ` ; }

Javascript';回调&x27;函数不使用映射函数 //映射func以循环列表 const allExpesneHTML=allExpenses.map(费用=>{createListItem(费用)}); //join func连接字符串并删除逗号 const joinedAllExpenseHTML=allExpesneHTML.join(“”); //log(allExpesneHTML); expensetablel.innerHTML=联合AllExpenseHTML; ////侦听单击事件 元素。addEventListener(“单击”,AddExpenseTotTotal,false); //视图层 函数createListItem({desc,amount}){ 返回` ${desc} 2021年3月11日 ${amount} ` ; },javascript,html,Javascript,Html,回调函数createListItem()在映射函数中使用时不起作用。当我在没有函数的情况下执行时,它会按预期工作。有什么我可能遗漏的吗?在传递给map的回调中,您没有返回createListItem的结果 // map func to loop the list const allExpesneHTML= allExpenses.map(expense =>{ createListItem(expense) }); // join func to join st

回调函数createListItem()在映射函数中使用时不起作用。当我在没有函数的情况下执行时,它会按预期工作。有什么我可能遗漏的吗?

在传递给
map
的回调中,您没有返回
createListItem
的结果

    // map func to loop the list
    const allExpesneHTML= allExpenses.map(expense =>{ createListItem(expense) });

    //  join func to join strings and remove comma
    const joinedAllExpenseHTML = allExpesneHTML.join("");
    // console.log(allExpesneHTML);

    expenseTableEl.innerHTML= joinedAllExpenseHTML;
      
// //Listen to click event
element.addEventListener("click",addExpenseToTotal,false);

// view layer
function createListItem({ desc, amount }){
    return`
        <li class="list-group-item d-flex justify-content-between">
                    <div class="d-flex flex-column">
                    ${desc}
                    <small class="text-muted">March 11, 2021</small>
                    </div>
                
                    <span class="px-5">
                    ${amount}
                    </span>
                    <button type="button" class="btn btn-outline-danger btn-sm">
                    <i class="fas fa-minus-circle"></i>
                    </button>
                    </div>
        </li>
          ` ;
}
   
或者只是

allExpenses.map(expense => createListItem(expense))

您没有从映射函数返回值

您需要在显式返回语句中使用它,如下所示

allExpenses.map(createListItem)
或者使用隐式返回

const allExpesneHTML= allExpenses.map(expense =>{ 
   return createListItem(expense) 
});

您没有从
map
回调中返回任何内容。1)添加return:
.map(expense=>{return createListItem(expense)}
2)或删除隐式return的括号:
.map(expense=>createListItem(expense))
3)或简单地添加
.map(createListItem)
const allExpesneHTML= allExpenses.map(expense => createListItem(expense));