javascript - 嵌套映射函数

标签 javascript ecmascript-6

我有一个数组,用于生成一系列选项,这些选项将填充到 html 选择元素中。目前这工作正常。我已经完成了各种基准测试,.map() 是最有效的方法。

我的问题是,如何对 optgroup 元素中的选项进行分组。我尝试过使用嵌套的 .map() 但它仍然使选项未分组。

JS fiddle https://jsfiddle.net/57gbxrzc/

const myOptsArr = [
        {
            title: 'Fruit',
            values: ['apple','pear','grapes','beer']
        },
        {
            title: 'Animals',
            values: ['apple','dog','mouse','cat']
        },
        // more here
    ];

let myOpts = `
    <option value="">Select Option</option>
  ${myOptsArr.map(item => `
        </optgroup label="${item.title}">${
        item.values.map(itemValue => `
                <option value="${itemValue}">${itemValue}</option>
            `).join('')}
        </optgroup>;
  `).join('')}
`;

document.getElementById('mySelect').innerHTML = myOpts;

最佳答案

您需要解决以下问题

  • <optgroup>不是</optgroup>
  • 您不需要join()

Demo

关于javascript - 嵌套映射函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56688452/

相关文章:

javascript - 我需要澄清一下当我使用传播运算符时会发生什么

javascript - JavaScript 中的高阶内部内存不起作用

javascript - 如何获取选中的gridview列的值

javascript - 如何在 javascript 中实现对 webSocket 连接的 Ping/Pong 请求?

javascript - 除以 10 在 JavaScript 中没有任何作用

javascript - 根据特定元素设置状态

javascript - jQuery 手机 : How to navigate between dynamically generated pages

javascript - 在reactjs中从父组件调用并将参数传递给子组件的函数

javascript - 在 Redux 的 javascript 中包装容器方法的优雅方式

javascript - Angular UI Router - 如何将解析数据从父状态传递到嵌套 View