应用程序以某种方式将不需要的参数写入对象

Application somehow writing unwanted parameters to object

本文关键字:参数 对象 不需要 方式 应用程序      更新时间:2023-09-26

我有两个函数。它们都采用了一个巨大的JSON对象,其中一个将其更改为格式:

[{ date: 'date', count_0: '10' },
 { date: 'date', count_0: '10' }]

另一个函数将JSON对象更改为以下格式:

[{ date: 'date', count_0: '10', count_1: '20', count_2: '30' ... },
 { date: 'date', count_0: '10', count_1: '20', count_2: '30' ... }]

这是奇怪的部分我只调用第一个函数,但我的程序正在尝试生成第二个函数的格式

另一个函数在我的代码中,但我知道它没有被调用,因为我在其中有许多alert函数没有启动。

这是一个澄清,使我的问题更清楚下面是第一个函数。。。一堆(for... in)垃圾和条件语句:

function firstFunction(data, sort, campaign) {
  var transformed_data = [];
  // Loop through the original data
  for(var d in data) {
    var obj = data[d];
    // If you have the correct campaign data
    if(obj.name === campaign) {
      // For each data entry in this object
      for(var obj_d in obj.data) {
        var obj_data = obj.data[obj_d];
        // Create a temporary transformed object to hold the proper data
        var transformed_obj = {
          date: obj_data.date,
          count_0: obj_data[sort]
        }
        // This console log shows the transformed_obj in the expected format
        console.log(transformed_obj);
        // Push the temporary object into the helper array
        transformed_data.push(transformed_obj);
        // This console log flips a shit
        console.log(transformed_data);
      }
    }
  }
  // Return helper array
  return transformed_data;
}

该功能中的第一个控制台日志显示正确的格式:

Object {date: "2013-01-01", count_0: 17147}

第二个控制台日志显示:

[Object]

好吧,到目前为止还不错。。。让我们扩展一下…

扩展:

0: Object
1: Object
2: Object
3: Object
4: Object
5: Object
6: Object
7: Object

什么?这根本不是意料之中的事。。。想知道如果我们展开其中一个对象会发生什么。。。

扩展对象:

count_0: 17147
count_1: NaN
count_2: NaN
count_3: NaN
count_4: NaN
count_5: NaN
date: Mon Dec 31 2012 19:00:00 GMT-0500 (EST)

什么????为什么它试图写入属性count_1count_5?这里可能有什么问题?


已解决

我的指令试图向不存在的数组写入属性,显然该指令在控制器之前启动。标记为关闭。

var obj_data = obj.data[obj_data]; 

正在破坏循环"迭代器"。请尝试使用其他变量(例如var element=(。

另外,您用jQuery标记了这个问题——为什么不接受jQuery呢?