在JavaScript中过滤对象中的数据

时间:2018-11-12 08:04:28

标签: javascript jquery

我有以下对象。

var Data = [{ datetime: "03:48 PM 10/31/2018", dermatologist: "Canfield", id: 4021, owner_name: "John Doe", pet_name: "Dog", score: 37 }, { datetime: "03:48 PM 10/31/2018", dermatologist: "Nicky barown", id: 4022, owner_name: "Carlos", pet_name: "Cat", score: "57" }, { datetime: "03:48 PM 10/31/2018", dermatologist: "Canfield", id: 4023, owner_name: "James", pet_name: "Parrot", score: 50 }]

皮肤科医生如何从对象中获取数据。

我正在尝试以下代码。

var result = Data['dermatologist']

但是我只有一张唱片。

我希望所有与皮肤科医师相同的物品。

  {   "datetime": "03:48 PM 10/31/2018",
      "dermatologist": "Canfield",
       "id": 4021,
      "owner_name": "John Doe",
      "pet_name": "Dog",
      "score": 37
    },

    {
      "datetime": "03:48 PM 10/31/2018",
      "dermatologist": "Canfield",
      "id": 4023,
      "owner_name": "James",
      "pet_name": "Parrot",
      "score": 50
    }

3 个答案:

答案 0 :(得分:1)

假设您要按特定键的已知值过滤数组,然后您将属性取走并对照过滤后的结果集的值进行检查。

使用的技术:

var data = [{ datetime: "03:48 PM 10/31/2018", dermatologist: "Canfield", id: 4021, owner_name: "John Doe", pet_name: "Dog", score: 37 }, { datetime: "03:48 PM 10/31/2018", dermatologist: "Nicky barown", id: 4022, owner_name: "Carlos", pet_name: "Cat", score: "57" }, { datetime: "03:48 PM 10/31/2018", dermatologist: "Canfield", id: 4023, owner_name: "James", pet_name: "Parrot", score: 50 }],
    result = data.filter(({ dermatologist }) =>  dermatologist === "Canfield");

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

答案 1 :(得分:0)

使用Array.map()进行对象解构以获得dermatologist数组:

var Data = [{
      datetime: "03:48 PM 10/31/2018",
      dermatologist: "Canfield",
      id: "4021",
      owner_name: "John Doe",
      pet_name: "Dog",
      score: "37"
    },
    {
      datetime: "03:48 PM 10/31/2018",
      dermatologist: "Nicky barown",
      id: "4022",
      owner_name: "Carlos",
      pet_name: "Cat",
      score: "57"
    },
    {
      datetime: "03:48 PM 10/31/2018",
      dermatologist: "Canfield",
      id: "4023",
      owner_name: "James",
      pet_name: "Parrot",
      score: "50"
    }
  ];
var dermatologists = Data.map(({dermatologist}) => dermatologist);
console.log(dermatologists);

答案 2 :(得分:-1)

您的JSON对象需要进行编辑,以便可以正确解析。我假设您的Data变量是一个JSON对象数组,每个对象都有一个属性dermatologist。您可以像这样访问任何数组元素:Data[i].dermatologist

var Data =   [{
      datetime: "03:48 PM 10/31/2018",
      dermatologist: "Canfield",
      id: "4021",
      owner_name: "John Doe",
      pet_name: "Dog",
      score: "37"
    },
    {
      datetime: "03:48 PM 10/31/2018",
      dermatologist: "Nicky barown",
      id: "4022",
      owner_name: "Carlos",
      pet_name: "Cat",
      score: "57"
    },
    {
      datetime: "03:48 PM 10/31/2018",
      dermatologist: "Canfield",
      id: "4023",
      owner_name: "James",
      pet_name: "Parrot",
      score: "50"
    }
  ];
  
  console.log(Data[0].dermatologist);   //Canfield
  console.log(Data[1].dermatologist);   //Nicky barown
  //alternatively:
  console.log(Data[2]["dermatologist"]);   //Canfield
  
  

现在,很容易设置一个for loop来遍历所有元素,并对每个元素执行所需的任何操作。