每一个写过js的应该多用过push()把。可是最近遇到一个真实的需求:
我们的ui组件是基于jquery开发的,在显示列表中我现在需要在选中行的下面增加我新插入的一行数据。所以行数据集多放在一个array对象中,现在我可以获取到选中行的一些信息。但是如果我直接调用push()的话,新增的数据集会跑到array的最后一个。
定义和用法 push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
当然这是对的,但是和我的需求是不符合的。
我开始的思路就是定义一个新的array对象,执行一个for循环,将选中行的某一个值(比如主键)去和当前页的所有数据的比,如果相等这时候就往新的array对象push选中行的数据集和新增的数据集
var newdata = {total:0,rows:[]}; for(var i =0; i<data.rows.length;i++){ if(data.rows[i][idField] == selectrowdata[idField]){ newdata .rows.push(griddata.rows[i]); newdata .rows.push(rowdata); newdata .total++; }else{ newdata .rows.push(data.rows[i]); } newdata .total++; }