【问题标题】:Check if currrent value is bigger than the previous [closed]检查当前值是否大于前一个[关闭]
【发布时间】:2021-07-13 20:46:32
【问题描述】:

我有一个如下所示的对象数组:

        "Mode": [
          {
            "level": 4,
            "moduleDetails": "some text"
          },
          {
            "level": 5,
            "modeDetails": "some teext 2"
          },
          {
            "level": 6,
            "modeDetails": "some text 3"
          },
          {
            "level": 4,
            "modeDetails": "some text 4"
          }
        ]

我需要遍历这个数组并检查键“level”的当前值是否大于循环中的前一个值,如果是我需要返回true。我怎样才能做到这一点?

【问题讨论】:

  • 不太清楚你在问什么。考虑改进您的问题。
  • 现在可能会更好:)
  • 还有什么问题?循环遍历元素并比较当前元素 (i) 和前一个元素 (i - 1) 的级别
  • 请添加您尝试过的内容以及您对该尝试的挑战。
  • 嗨,安德烈亚斯,没错。

标签: javascript arrays reactjs loops gatsby


【解决方案1】:

在你的情况下,你可以这样做

const arr1 = [
  {
    "level": 4,
    "moduleDetails": "some text"
  },
  {
    "level": 5,
    "modeDetails": "some teext 2"
  },
  {
    "level": 6,
    "modeDetails": "some text 3"
  },
]

const arr2 = [
  {
    "level": 4,
    "moduleDetails": "some text"
  },
  {
    "level": 5,
    "modeDetails": "some teext 2"
  },
  {
    "level": 3,
    "modeDetails": "some text 3"
  },
]

const check = (arr) => arr.every((item, i) => !arr[i - 1]?.level || arr[i - 1]?.level < item.level)

console.log(check(arr1))
console.log(check(arr2))

【讨论】:

  • 请解释您的解决方案。为什么.every()?为什么一定要单线?可选链有什么用?
【解决方案2】:

您可以使用forEach 循环数组并进行必要的检查。

const array = [
  { level: 4, moduleDetails: "some text" },
  { level: 5, modeDetails: "some teext 2" },
  { level: 6, modeDetails: "some text 3" },
  { level: 4, modeDetails: "some text 4" },
];

array.forEach((o, i) => i != 0 && console.log(o.level > array[i - 1].level));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-11
    • 2015-05-17
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 2017-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多