javascript - 查找并获取与值匹配的对象数组(ES6)

标签 javascript arrays json ecmascript-6 ecmascript-5

下面是我在 json 响应中得到的一些 obj 数组的示例:

0: {day: "7", starting_time: "0800", closing_time: "1600"}
1: {day: "1", starting_time: "0600", closing_time: "1600"}
2: {day: "2", starting_time: "0600", closing_time: "1600"}
3:
closing_time: "1600"
day: "3"
starting_time: "0600"
__proto__: Object

我通过以下方式获取当前星期几的值:

  var d = new Date();
  var dayOfWeek = d.getDay();
  var hour = d.getHours();

我只是尝试使用上面得到的 dayOfWeek 值(即今天是 5) - 并使用它来获取数组 obj 5 :从我的json中获取json响应中的那()天的工作时间。

以下是我最近尝试过的。

  function matchingDay(hoursoperations) {
    return hoursoperations === dayOfWeek;
  }
  console.log(myJson.bla.findIndex(matchingDay));

但我收到错误:

index.js:45 Uncaught (in promise) TypeError: myJson.bla.findIndex not a function
<小时/>

更多上下文,数据来自 fetch API。

document.addEventListener('DOMContentLoaded', () => { 
  loadSVGs();
  fetch('https://www.website.com/obfuscate-json/obfuscate/v3/options/obfuscate')
  .then(function(response) {
    return response.json();
  })
  .then(function(myJson) {
  // ....  code ... 

最佳答案

你的函数很好,只是 myJson.bla 不是一个数组,而是一个带有键“0”、“1”的对象......如果你不关心这些索引

function matchingDay(hoursoperations) {
  return hoursoperations === dayOfWeek;
}
console.log(Object.values(myJson.bla).findIndex(matchingDay));

您可以进一步修改您的方法以与属性日期进行比较

function matchingDay(row) {
  return +row.day === dayOfWeek;
}
console.log(Object.values(myJson.bla).findIndex(matchingDay));

关于javascript - 查找并获取与值匹配的对象数组(ES6),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58033941/

相关文章:

javascript - D3 图表范围安全区

javascript - 如何在打字时实时应用验证 [Typescript]

javascript - 嵌套 JSON 值的总和

Python Json小写nan

javascript - JQuery 在点击事件中获取输入框的值

javascript - 在 ReactJS 中构建响应式页脚

arrays - 如何使用 gson/retrofit 获取对象数组?

javascript - 单击并更改此 div

c - 如何在C中将一维数组设置为二维数组元素

通过 REST : Share a jar with class definitions? 进行 Java 到 Java 的对话