我该如何做对象数组

问题描述:

我有html表格输入。我想每一行,我想创建对象我该如何做对象数组

var stoktbl = {} 
var table = []; 

var rowCount = document.getElementById('yeni').rows.length; 
for (var satirx = 1; satirx < rowCount; satirx++) { 

    stoktbl.firma_barkod = document.getElementById(satirx + "_" + "1").value; 
    stoktbl.adet = document.getElementById(satirx + "_" + "5").value; 
    stoktbl.birim_satis_fiyati = document.getElementById(satirx + "_" + "6").value; 

    table[satirx] = stoktbl; 
} 

var JsonString = JSON.stringify(table) 
console.log(JsonString) 

时运行它获得输入框

<table id="yeni"> 
    <tr id="1"> 
    <td> 
     <input id="1_1" style="width: 70px; font-size: 11px;"> 
    </td> 
    <td> 
     <input id="1_2" style="width: 80px; font-size: 11px;"> 
    </td> 
    <td> 
     <input id="1_3" style="width: 80px; font-size: 11px;"> 
    </td> 
    <td> 
     <input id="1_4" style="width: 80px; font-size: 11px;"> 
    </td> 
    <td> 
     <input id="1_5" style="width: 80px; font-size: 11px;"> 
    </td> 
    <td> 
     <input id="1_6" style="width: 80px; font-size: 11px;"> 
    </td> 
    <td> 
     <input id="1_7" style="width: 80px; font-size: 11px;"> 
    </td> 
    </tr> 
    <tr id="2"> 
    <td> 
     <input id="2_1" style="width: 70px; font-size: 11px;"> 
    </td> 
    <td> 
     <input id="2_2" style="width: 80px; font-size: 11px;"> 
    </td> 
    <td> 
     <input id="2_3" style="width: 80px; font-size: 11px;"> 
    </td> 
    <td> 
     <input id="2_4" style="width: 80px; font-size: 11px;"> 
    </td> 
    <td> 
     <input id="2_5" style="width: 80px; font-size: 11px;"> 
    </td> 
    <td> 
     <input id="2_6" style="width: 80px; font-size: 11px;"> 
    </td> 
    <td> 
     <input id="2_7" style="width: 80px; font-size: 11px;"> 
    </td> 
    </tr> 
    <tr id="3"> 
    <td> 
     <input id="3_1" style="width: 70px; font-size: 11px;"> 
    </td> 
    <td> 
     <input id="3_2" style="width: 80px; font-size: 11px;"> 
    </td> 
    <td> 
     <input id="3_3" style="width: 80px; font-size: 11px;"> 
    </td> 
    <td> 
     <input id="3_4" style="width: 80px; font-size: 11px;"> 
    </td> 
    <td> 
     <input id="3_5" style="width: 80px; font-size: 11px;"> 
    </td> 
    <td> 
     <input id="3_6" style="width: 80px; font-size: 11px;"> 
    </td> 
    <td> 
     <input id="3_7" style="width: 80px; font-size: 11px;"> 
    </td> 
    </tr> 
</table> 

值;

我只看到像

[null, { 
    "adet": "1", 
    "birim_satis_fiyati": "69.9", 
    "firma_barkod": "091986 " 
}, { 
    "adet": "1", 
    "birim_satis_fiyati": "69.9", 
    "firma_barkod": "091986 " 
}, { 
    "adet": "1", 
    "birim_satis_fiyati": "69.9", 
    "firma_barkod": "091986 " 
}, { 
    "adet": "1", 
    "birim_satis_fiyati": "69.9", 
    "firma_barkod": "091986 " 
}, { 
    "adet": "1", 
    "birim_satis_fiyati": "69.9", 
    "firma_barkod": "091986 " 
}, { 
    "adet": "1", 
    "birim_satis_fiyati": "69.9", 
    "firma_barkod": "091986 " 
}, { 
    "adet": "1", 
    "birim_satis_fiyati": "69.9", 
    "firma_barkod": "091986 " 
}] 

在你的for循环需要最后一行数据repaet重新初始化stoktbl对象

for(var satirx=1; satirx<rowCount; satirx++){ 
    stoktbl = {}; 
    //rest of the cpde 
} 

否则,您table阵列将继续在所有索引处使用相同的对象。

此外,你需要使用push方法来添加对象数组

for(var satirx=1; satirx<rowCount; satirx++) 
{ 
    stoktbl = {}; 
    stoktbl.firma_barkod=document.getElementById(satirx +"_"+"1").value; 
    stoktbl.adet= document.getElementById(satirx +"_"+"5").value; 
    stoktbl.birim_satis_fiyati= document.getElementById(satirx +"_"+"6").value; 
    table.push(stoktbl); 
} 

这将确保table阵列的是第一个元素是不为空。