Javascript对象结构
Javascript object structure
我有一个收集员工生产数据的表单,代码如下:
$(document).on('click','input#Apply.btn.btn-success',function(e){
var TableData;
TableData = storeTblValues();
var TableData1 = [];
$.each(TableData,function(index,value){
if(value.quantity && value.quantity >0 && value.quantity < 65535){
TableData1[index]={
"employee_id" : value.employee_id
, "operation_id" : value.operation_id
, "quantity" : value.quantity
}
}
});
// retrieving employee_id to fetch date data from date input
$.each(TableData1,function(index,value){
employee_idj = value.employee_id;
});
$('#cboxClose').click();
var datee = dateConvToMySqlDate($('input#dateOfProduction_'+employee_idj+'.dateOfProduction_.hasDatepicker').val());
if(!datee){alert(dateMessager);e.preventPropagation();return false;}
var noOfRecords = TableData1.length;
for(i=0;i<noOfRecords;i++)
{TableData1[i]['production_date'] = datee;}
var TableData1 = $.toJSON(TableData1);
alert(JSON.stringify(TableData1));
var qurl = '<?php echo base_url();?>production_entry/submitData';
$.ajax({
url: qurl,
type: "POST",
data:"pTableData=" + TableData1,
success: function(data){
var data = $.parseJSON(data);
if(data.status == 'error')
{
alert(data.errorMessage);
}else{
alert(noOfRecords+' records sent and '+' '+data.successMessage);
$('#tr_'+employee_idj).fadeOut();
}
}
});
function storeTblValues()
{
var TableData = new Array();
$('#searchOperationTable tr').each(function(row, tr){
var x = parseInt($(tr).find("input.quantity").val());
if(x){
TableData[row]={
"employee_id" : parseInt($(tr).find("input.hiddenemployeeId").val())
, "operation_id" : parseInt($(tr).find('td:eq(0)').text())
, "quantity" : parseInt($(tr).find("input.quantity").val())
}
}
});
TableData.shift();
return TableData;
}
});
当某人错误地输入等于0的数量值时,那么TableData1对象变成
[ null,{"employee_id" : 3816,"operation_id":3,"quantity":10}]
,脚本停止工作。我想消去这个零。该怎么办?
当输入0时,您的检查if(x)
为false,因此不会为该条目设置TableData[row]
。相反,使用array.push
:
if(x){
TableData.push({
"employee_id" : parseInt($(tr).find("input.hiddenemployeeId").val())
, "operation_id" : parseInt($(tr).find('td:eq(0)').text())
, "quantity" : parseInt($(tr).find("input.quantity").val())
})
}
如果您不关心数组的索引值,那么您可以使用push(value)
而不是array[index]=value
。就像我的例子:
TableData.push({
"employee_id" : parseInt($(tr).find("input.hiddenemployeeId").val()),
"operation_id" : parseInt($(tr).find('td:eq(0)').text()),
"quantity" : parseInt($(tr).find("input.quantity").val())
});`
相关文章:
- 更改JSON对象的结构
- 嵌套对象结构
- 从json对象聚集数据并创建层次结构
- 如何迭代json对象结构以只获取名称
- ES6非结构化中的计算属性-非结构化整体对象
- 如何在Javascript中连接两个结构不同的对象
- redux 中状态对象的结构
- 文字与原型对象表示法的数据结构
- 从knockout.js中的另一个对象更新一个深度结构化的javascript对象
- JSDoc:返回对象结构
- 通过键将平面对象转换为嵌套结构
- 关于JavaScript对象结构属性的问题
- 如何用以下结构定义一个空的javascript对象,以便我可以动态地将数据插入其中
- 无法识别的数据结构-转换为对象
- 无法通过jQuery查找来定位层次结构中的对象
- Rails结构到JSON对象
- 将字符串(带有结构对象)转换为对象
- 从HTML大纲创建层次结构对象
- 特殊的JavaScript结构:对象定义中的对象类型变量
- Null在Javascript中检查大型层次结构对象