【问题标题】:how to add parentheses to lowest and highest number when creating elements创建元素时如何将括号添加到最小和最大数字
【发布时间】:2021-07-17 11:50:48
【问题描述】:
const liArray = [5.6, 8.7, 1.3, 10, 56];

const parentElement = document.getElementById("myDiv");

liArray.forEach((currentValue, index) => {
  var elm = document.createElement('p');
  elm.innerHTML = `${index + 1}. ${currentValue}`;
  parentElement.appendChild(elm);
});

<div id="myDiv"></div>

我有这段代码为数组中的每个项目创建一个新的段落元素,因此结果将是:

1. 5.6
2. 8.7
3. 1.3
4. 10
5. 56

但我想在创建元素时自动将圆括号() 添加到最小和最大数字,这样创建的元素就会像这样

1. 5.6
2. 8.7
3. (1.3)
4. 10
5. (56)

我该怎么做?

【问题讨论】:

    标签: javascript html jquery dom frontend


    【解决方案1】:

    您可以使用Math.min()Math.max() 来获取数组中的最小值和最大值。然后,当您循环遍历数组以输出到 UI 时,如果迭代中的项目与这些值之一匹配,则可以添加括号。试试这个:

    const liArray = [5.6, 8.7, 1.3, 10, 56];
    const min = Math.min.apply(Math, liArray);
    const max = Math.max.apply(Math, liArray);
    const parentElement = document.getElementById("myDiv");
    
    liArray.forEach((currentValue, index) => {
      var elm = document.createElement('p');
      let text = `${index + 1}. ${(currentValue == min || currentValue == max) ? `(${currentValue})` : currentValue}`;
      elm.innerText = text;
      parentElement.appendChild(elm);
    });
    &lt;div id="myDiv"&gt;&lt;/div&gt;

    顺便说一句,您可以使用 olli 元素,以便 HTML 为您生成编号列表,而无需自己跟踪 index

    【讨论】:

    • 啊,是的,我忘了我可以使用ol xD,感谢您的回答:D
    • 嗨顺便说一句,我在这里有另一个疑问,如果有 2 个相同的数字并且它们都是最高/最低的数字,它会为两个数字添加括号,如何使它只添加括号到其中一个
    【解决方案2】:

    您可以使用Math.minMath.max 找出数组限制。 apply 仅表示您可以将数组传递给instead of a delimited list of numbers 的那些方法。

    const liArray = [5.6, 8.7, 1.3, 10, 56];
    
    const min = Math.min.apply(Math, liArray);
    const max = Math.max.apply(Math, liArray);
    
    console.log(min, max)
    
    const parentElement = document.getElementById("myDiv");
    
    liArray.forEach((currentValue, index) => {
      var elm = document.createElement('p');
      if (currentValue === min || currentValue === max) {
        elm.innerHTML = `${index + 1}. (${currentValue})`;
      } else {
        elm.innerHTML = `${index + 1}. ${currentValue}`;
      }
      parentElement.appendChild(elm);
    });
    &lt;div id="myDiv"&gt;&lt;/div&gt;

    【讨论】:

    • 嗨顺便说一句,我在这里有另一个疑问,如果有 2 个相同的数字并且它们都是最高/最低的数字,它会为两个数字添加括号,如何使它只添加括号到其中一个
    猜你喜欢
    • 1970-01-01
    • 2019-08-31
    • 1970-01-01
    • 2021-02-26
    • 1970-01-01
    • 2020-06-23
    • 1970-01-01
    • 2012-01-27
    • 2020-09-22
    相关资源
    最近更新 更多