【问题标题】:How would I use a known value in an array to find another value in the same array?如何使用数组中的已知值在同一数组中查找另一个值?
【发布时间】:2023-03-12 16:00:01
【问题描述】:

我正在处理一个看起来像这样的奇怪数据结构:

const time = {
      60: [
        { acc: 98.97, language: 'english', punctuation: false, wpm: 96, raw: '46' },
        { acc: 92.63, language: 'english_10k', punctuation: false, wpm: 59.19, raw: 60.99 }
      ]
};

我已经有了 wpm 的值(例如 96),但需要从 96 来自的同一个数组中找到 raw 的值。我给它一个尝试如下:

function findTimeRaw() {
      let timeVal = 96
      let {raw} = time[timeVal].find(({wpm})=>wpm===timeVal);
      return raw
}

理论上这应该返回“46”,而是返回未定义。

谁能解释我哪里出错了?

【问题讨论】:

  • 这个time[timeVal]根据发布的time对象返回undefined,因为没有任何属性等于96
  • 你知道timeVal吗?或者这个time 结构中是否/可以有多个键?
  • 我已经知道 timeval,它可以是 15、30、60 或 120 - 但为了简单起见,我没有包括这个
  • let {raw} = time[60].find(({wpm})=>wpm===timeVal);
  • 我看不出它怎么可能是wpm===timeVal,因为在这种情况下timeval = 60,但谢谢

标签: javascript arrays function object


【解决方案1】:

您混淆了时间和 WPM 变量 - 它们需要不同。

const time = {
      60: [
        { acc: 98.97, language: 'english', punctuation: false, wpm: 96, raw: '46' },
        { acc: 92.63, language: 'english_10k', punctuation: false, wpm: 59.19, raw: 60.99 }
      ]
};

function findTimeRaw() { 
      const timeVal = 60;
      const wpmToFind = 96;
      const {raw} = time[timeVal].find(({wpm})=>wpm===wpmToFind);
      return raw
}
console.log(findTimeRaw());

【讨论】:

    猜你喜欢
    • 2016-08-15
    • 2021-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多