简体   繁体   English

如何根据嵌套值从 json 文件中提取对象(使用 JavaScript)

[英]How do I extract an object from a json file based on a nested value (using JavaScript)

    const data = [
   {0: {id: "1",cat:{string:[{color:"yellow",weight:"10"},{color:"orange",Weight:"10"}]}},
   {1: {id: "1",cat:{string:[{color:"blue",weight:"10"},{color:"orange",Weight:"10"}]}},
   {2: {id: "1",cat:{string:[{color:"white",weight:"10"},{color:"orange",Weight:"10"}]}},
   {3: {id: "1",cat:{string:[{color:"blue",weight:"10"},{color:"orange",Weight:"10"}]}},
]

Filter by Color: "Yellow"按颜色过滤:“黄色”

Desired Output: [{0: {id: 1, country: "SA", address: "IOXX",cat:[{color: "yellow",weight: "10"}]}}]期望输出: [{0: {id: 1, country: "SA", address: "IOXX",cat:[{color: "yellow",weight: "10"}]}}]

You can map over your data array and check if each object passes your conditions or not.您可以映射您的data数组并检查每个对象是否通过您的条件。

const data = [
 {0: {id: 1, country: "SA", address: "IOXX",cat:[{color: "yellow",weight: "10"}]}},
 {1: {id:2, country: "SAP", name: "N", address: "IOP",cat:[{color: "blue",weight: "10"}]}},
 {2: {id:3, country: "S", name: "NO", address: "I",cat:[{color: "blue",weight: "10"}]}},
 {3: {id:4, country: "SXX", name: "NOI", address: "INDIA",cat:[{color: "blue",weight: "12"}]}},
]

const filterByColor = function (color) {
  const filteredCats = []
  data.forEach((item, index) => {
    const hasCorrectColor = item[index].cat.every((cat) => cat.color === color)
    if (hasCorrectColor) {
       filteredCats.push(item)
    }
      
  })
  return filteredCats
}

filterByColor('yellow')

You can use filter() method您可以使用filter()方法

 const data = [ { 0: { id: "1", cat: { string: [{ color: "yellow", weight: "10" }, { color: "orange", Weight: "10" }] } } }, { 1: { id: "1", cat: { string: [{ color: "blue", weight: "10" }, { color: "orange", Weight: "10" }] } } }, { 2: { id: "1", cat: { string: [{ color: "white", weight: "10" }, { color: "orange", Weight: "10" }] } } }, { 3: { id: "1", cat: { string: [{ color: "blue", weight: "10" }, { color: "orange", Weight: "10" }] } } } ]; var res = data.filter((el, i) => data[i][i]['cat']['string'][0]['color'] === 'yellow'); console.log(res);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何使用javascript从JSON返回的对象中提取特定值? - How do I extract a specific value from a JSON returned object with javascript? 如何使用 javascript 从 JSON 文件中提取数据? - How can I extract data from a JSON file using javascript? 使用JMESPath从JSON对象提取嵌套元素值 - Extract nested element value from JSON object using JMESPath 如何使用Javascript从JSON提取值? - How to extract a value from JSON using Javascript? 如何使用 javascript 在 html 表行中提取嵌套的 json 值 - How to extract nested json value in a html table row using javascript 如何基于javaScript中的条件从对象中删除值 - How do I delete a value from an object based on criteria in javaScript 如何从 Node-red 中的嵌套 JSON 有效负载中提取“temp”的值? - How do I extract the value of 'temp' from a nested JSON payload in Node-red? 如何使用Javascript从JSON文件中选择随机对象? - How do I select a random object(?) from a JSON file with Javascript? 如何通过从单独的数组中匹配的字符串对象值从 3 个嵌套的 json 数组中提取对象值,然后在 html/javascript 中显示它 - How can I extract object values from 3 nested json arrays by matched string object values from a separate array and then display it in html/javascript 如何使用它们的键从嵌套的 JSON 数据数组中提取最内层的值? - How can I extract innermost value from an array of nested JSON data using their keys?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM