Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为数组指定两个动态键_Javascript_Coffeescript - Fatal编程技术网

Javascript 为数组指定两个动态键

Javascript 为数组指定两个动态键,javascript,coffeescript,Javascript,Coffeescript,我已经试了一个小时了,但我想不出来 我有这个: data = [ { "_id": { "cid": "gbrzjauzju", "source": "iwowrzlocc" }, "revenue": 0, "leads": 484, "count": 25400 }, { "_id": { "cid"

我已经试了一个小时了,但我想不出来

我有这个:

data =  [
      {
        "_id": {
          "cid": "gbrzjauzju",
          "source": "iwowrzlocc"
        },
        "revenue": 0,
        "leads": 484,
        "count": 25400
      },
      {
        "_id": {
          "cid": "lewyhgnnhz",
          "source": "iwowrzlocc"
        },
        "revenue": 0,
        "leads": 166,
        "count": 9821
      },
    ]
我使用['cid','source']作为变量过滤器传入过滤器,因此我可以作为过滤器[0]过滤器[1]访问它

我想做的是:

arr = {}
for item in data
   arrdata =
      revenue: item.revenue
      leads: item.leads
      clicks: item.count
   arr['results'][item._id.filters[0]][item._id.filters[1]] = arrdata
我想将cid和source的值设置为key name作为key name,如下所示:

results =
   iwowrzlocc =
      lewyhgnnhz =
         revenue: 0
         leads: 166
         clicks: 9821
      gbrzjauzju =
         revenue: 0
         leads: 484
         clicks: 25400

我到底要如何做到这一点?提前谢谢你

您是否尝试不在项中使用“点语法”。\u id.filters[0]

如果我是你,我会尝试分割最后一句话:

var arr = {};
var item_results = {};
var item_cid = {};
for (i in data) {
    var item = data[i];
    var array_data = {
        revenue: item.revenue,
        leads: item.leads,
        count: item.count
    };
    item_cid[item._id[filters[1]]] = array_data;
    item_results[item._id[filters[0]]] = item_cid;
};
arr['results'] = item_results;

只是为了让事情更具可读性,更容易识别代码中可能存在的问题。我希望我能在某些方面帮助你!:)

非常感谢你!成功了,我以后会记得的。把它保存在我的笔记中,再次感谢。它实际上为每个cid添加了相同的值(收入、点击、潜在客户),为什么?它们在数组中是不同的。不明白为什么会这样