wx:for
.JS
Page({ data: { input_data: [ { id: 1, unique: "unique1" }, { id: 2, unique: "unique2" }, ] }, //前部插入元素函数 addToFront: function (e) { //console.log(this.data.input_data.length);//输出2 const length = this.data.input_data.length + 1;//2+1 //console.log(length);//输出3 //console.log(this.data.input_data);//输出2 this.data.input_data = [{ id: length, unique: 'unique_' + length }].concat(this.data.input_data) //concat() 方法用于连接两个或多个数组。 //console.log(this.data.input_data); // 输出3 this.setData({ //设置data下面的input_data, input_data: this.data.input_data }) }, //随机排序函数 switch: function (e) { //lenght =2; const length = this.data.input_data.length //i=0;i<2;++i for (let i = 0; i < length; ++i) { let tes = Math.random() * length; //输出这个随机数 //console.log(tes+'=tes'); //向下取整 const x = Math.floor(tes); //输出x //console.log(x+"=x"); let tess = Math.random() * length; //输出这个随机数 //console.log(tess+'=tess'); //向下取整 const y = Math.floor(tess); //输出y //console.log(y+"=y"); //获取input_data[x]的值赋值给temp const temp = this.data.input_data[x] //获取input_data[y]的值赋值给input_data[x] this.data.input_data[x] = this.data.input_data[y] //在把temp的值赋值给input_data[y] this.data.input_data[y] = temp //交换值; 由于索引是随机的,所以当lenght长度越大,交换次数越多 } //重新设置data数据 this.setData({ input_data: this.data.input_data }) } })
.wxml
<input wx:for="{{input_data}}" /> //循环 data:下的input_data 数组 input_data: [ { id: 1, unique: "unique1" }, { id: 2, unique: "unique2" }, ] <input value="id:{{item.id}}" wx:for="{{input_data}}" /> //循环 data:下的input_data 数组 //循环项的id绑定到文本框的值 <button bindtap="addToFront"> //调用addToFront方法 </button>