.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>