【问题标题】:Validating array of object验证对象数组
【发布时间】:2022-11-25 13:45:01
【问题描述】:

如何验证数字是负数还是正数或小数

 {items: [{id: 1, number: "9000"}, {id: 2, number: "80000"}, {id: 3, number: "1000"}]}

【问题讨论】:

  • 你试过isNaN()吗?
  • 只需检查值是否大于0>
  • 如何使用正则表达式
  • 你为什么要为此使用正则表达式?
  • @askme 除非这是为了课堂作业,否则没有理由对自己任意施加奇怪的限制,比如必须用正则表达式解决这个问题

标签: javascript arrays


【解决方案1】:

我不太确定您要做什么,但是如果您想将项目数组过滤为仅数字键为正的项目,您可以尝试以下代码:

const positiveNumbers = items.filter(item => +item.number >=0);

如果你想创建一个具有正负键的对象并将项目数组分开,你可以尝试:

const categorizedNumbers = items.reduce((prev, next) => {
   const current = +next.number;
   if (current >= 0) {
     prev.positive.push(next);
   } else {
     prev.negative.push(next);
   }
}, {negative: [], positive []});

【讨论】:

    【解决方案2】:

    我们可以使用以下脚本使用 Number 属性来确定数字是正数还是负数 -

    // Array of object
    const data = {
      "items": [
        {
          "id": 1,
          "number": "9000"
        },
        {
          "id": 2,
          "number": "80000"
        },
        {
          "id": 3,
          "number": "-1000"
        }
      ]
    }
    
    // Check using .map
    data.items.map((item: { id: number; number: string; isNegative?: boolean }) => item.isNegative = Number(item.number) < 0)
    
    // Response
    {
      "items": [
        {
          "id": 1,
          "number": "9000",
          "isNegative": false
        },
        {
          "id": 2,
          "number": "80000",
          "isNegative": false
        },
        {
          "id": 3,
          "number": "-1000",
          "isNegative": true
        }
      ]
    } 
    
    

    【讨论】:

      猜你喜欢
      • 2015-10-24
      • 2018-05-06
      • 1970-01-01
      • 1970-01-01
      • 2018-08-21
      • 1970-01-01
      • 2022-01-05
      • 2020-02-09
      • 2018-02-23
      相关资源
      最近更新 更多