Javascript 将json的一部分提取到另一个对象中,并保持两者之间的链接

Javascript 将json的一部分提取到另一个对象中,并保持两者之间的链接,javascript,json,Javascript,Json,我想要的是创建另一个数组,包括vt_名称、vt_颜色和数据索引 所以我使用jquery {    "data": [       {          "date": "2013-03-07",          "id": "2",          "vt_color": "#548dd4",          "vt_name": "follow up",          "duration": "20",          "time_booked": "12:00:00",     

我想要的是创建另一个数组,包括vt_名称、vt_颜色和数据索引 所以我使用jquery

{
   "data": [
      {
         "date": "2013-03-07",
         "id": "2",
         "vt_color": "#548dd4",
         "vt_name": "follow up",
         "duration": "20",
         "time_booked": "12:00:00",
         "stats": "booked",
         "doctor_id": "00002",
         "patient_id": "00003"
      },
      {
         "date": "2013-03-08",
         "id": "3",
         "vt_color": "#76923c",
         "vt_name": "ultrasound",
         "duration": "30",
         "time_booked": "08:00:00",
         "stats": "booked",
         "pt_name": "demo patien",
         "dr_name": "Momen Alzalabany",
         "doctor_id": "00002",
         "patient_id": "00009"
      }
   ] 
}
失败:单词[this.do_id]未定义

我该怎么做?我希望结果是好的

抱歉,我是json/js的新手

我想在php的结果将是

var words = [];

$.each(arr['data'],function(ref){
    words[this.doctor_id].push({name: this.vt_color,color: this.vt_name,index:ref});
});
console.log(koko);
  • 将单词类型更改为object(而不是array),因为您需要一个以字符串(例如“00002”)为键的映射:

  • 您希望添加到不存在的数组中。您需要首先创建它:

    var words = {};
    

  • 你在哪里?它是一个php数组/对象吗?回答你的问题是不可能的。改进您的问题(并可能提供一个JSFIDLE)的工作示例是
    失败中的this.do\u id:words[this.do\u id]…
    输入错误还是“bug”?在这个上下文中,
    console.log(koko)
    是什么意思?!如果只有一个键,
    index
    怎么可能是一个数组?!请提供更多上下文、信息。。。ThxIf这是问题的答案,你至少应该得到+1的理解,尽管结果的部分
    。。。缺少索引=>[0,3,4]
    。(我将等待唤醒我的+1)
    var words = {};
    
    words[this.doctor_id] = words[this.doctor_id] || []; // creates an array if not already existing
    words[this.doctor_id].push({name: this.vt_color,color: this.vt_name,index:ref});