javascript - 将对象推入数组失败
问题描述
我creationParams
在所有函数之外声明了一个对象。该对象将在整个函数中进行操作。但是,我在将 Object 推送到creationParams
具有数据类型的 Property 时遇到问题Array
。
代码
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);
并给了我undefined
.
更新 2:我通过移动函数中的完整初始化使其creationParams.Project.Workplaces
工作#foo
。我想知道为什么,在不同的地方初始化它有什么区别?
问题
- 为什么会这样?
我怎样才能让它工作?已修复(见更新 2)
解决方案
推荐阅读
- rust - 参考上的 Rust 调用方法
- c++ - cpp上一个简单函数的返回值问题
- c++ - 为什么我的程序报告不正确的时差?
- azure-devops - 部署作业中的变量不会扩展值
- maven - “grails clean”报告“需要 HTTPS (501)”
- http2 - 服务端如何识别HTTP2中不同客户端的header压缩
- amazon-web-services - 如何使用 Terraform 查找 AWS Lambda 名称服务器?
- dialogflow-es - 有没有办法只提取参数而不是实体?
- linux - .asoundrc 网络摄像头的 ALSA 配置
- excel - 如果单元格包含大于零的值,则将单元格从一张纸复制到另一张纸