Length of a JSON object
本问题已经有最佳答案,请猛点这里访问。
此函数正在生成一个包含JSON对象的数组:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | var estoque={}; function unpack_estoque(tnm,total,estoque_vl,id,tid,st) { tnm=tnm.split("|"); total=total.split("|"); estoque_vl=estoque_vl.split("|"); id=typeof id != 'undefined' ? id.split("|") : null; tid=typeof tid != 'undefined' ? tid.split("|") : null; st=typeof st != 'undefined' ? st.split("|") : null; for (var i in tnm) estoque[i]={ "id": id != null ? id[i] : null, "tid": tid != null ? tid[i] : null, "total": total[i], "estoque": estoque_vl[i], "tnm": tnm[i], "st": st != null ? st[i] : null }; } |
现在,如何使
谢谢。
1 2 | var estoque = {}; //object estoque.length will not work (length is an array function) var estoque = new Array(); //estoque.length will work |
你可以试试:
1 2 3 4 5 6 7 8 9 10 | var estoque = new Array(); for (var i in tnm) estoque.push({ "id": id != null ? id[i] : null, "tid": tid != null ? tid[i] : null, "total": total[i], "estoque": estoque_vl[i], "tnm": tnm[i], "st": st != null ? st[i] : null }); |
现在,Estoque将是一个数组(可以作为一个数组遍历)。
1 2 3 | a={a:{},b:{},c:{}} Object.keys(a).length 3 |
因为它是一个数组方法,而不是一个对象,所以您不能让它工作。可以使用tnm的长度属性作为度量。然后您可以使用:
1 2 3 4 | var tnmLength = tnm.length; for (i=0, i>tnmLength - 1; i++) { estoque[tnm[i]] = {}; } |
循环遍历tnm数组中的所有项。