将对象推入数组失败

时间:2019-01-14 04:53:17

标签: javascript jquery arrays

我在所有函数之外声明了一个对象creationParams。在整个功能中将操纵该对象。但是,在将对象推入数据类型为creationParams的{​​{1}}的属性时遇到问题。

代码

Array

出现错误“无法读取未定义的属性'push'” 。我只希望将我的对象推到数组。我尝试制作另一个数组并将其推入数组,然后它起作用了。

更新:我尝试了var creationParams = {}; creationParams.Project = {}; creationParams.Project.Workplaces = []; $(#foo).click(function() { //this is the function that runs before someid //input validations here... creationParams.Org = $('#SelectedOrg').val(); creationParams.Token = ''; }); $('#someid').click(function () { $(this).attr('href', '#'); function isWpExisting(o) { for (var cntr = 0; cntr < creationParams.Project.Workplaces; cntr++) { if (creationParams.Project.Workplaces[cntr].Name.toUpperCase() === o) { return true; } } return false; } if ($('#wp-name').val() === '') { $('#wp-name').addClass("error-field").attr("data-original-title", "Please enter Workplace Name"); $(this).attr('href', '#'); } else if (isWpExisting($('#wp-name').val().toUpperCase()) === true && !$('#wp-wpcreate').attr('wp-edit')) { $('#wp-name').addClass("error-field").attr("data-original-title", "This Workplace is already existing"); $(this).attr('href', '#'); } else { $(this).attr('href', '#divWp-one'); $('#wp-name').removeClass("error-field").removeAttr("data-original-title"); var workPlace= {}; workPlace.Name = $('#wp-name').val(); workPlace.Description = $('#wp-description').val(); if ($('#wp-wpcreate').attr('wp-edit')) { for (var t = 0; t < creationParams.Project.Workplaces.length; t++) { if (creationParams.Project.Workplaces[t].Name === $('#wp-wpcreate').attr('wp-edit')) { creationParams.Project.Workplaces[t] = workPlace; $('#wp-wpcreate').attr('wp-edit', ''); } } } else { creationParams.Project.Workplaces.push(workPlace); } } }); // ...some more functions here // ,并给了我console.log(creationParams.Project.Workplaces);

更新2:我通过在undefined函数中移动creationParams.Project.Workplaces的完整初始化来使其工作。我不知道为什么,在不同的地方初始化它有什么区别?

问题

  1. 为什么会这样?
  2. 我如何使其工作?已修复(请参阅更新2

0 个答案:

没有答案