pxcs:function(){
var that = this;
var arr = new Array();
arr = [["中猫猫er", "E7555大号", "包背带", "150", "0.16"], ["卜要见、卜要贱", "CA0913大", "包背垫", "333", "0.18"]];
arr.sort(function (x, y) {
return x[1].localeCompare(y[1]);
});
that.setData({
arr:arr
})
console.log(this.data.arr);
console.log(that.data.arr)
},
pxcs2: function () {
var that = this;
console.log(this.data.arr)
console.log(that.data.arr);
var an_arr = that.data.arr
//以下这个排序为什么 会影响that.data.arr
an_arr.sort(function (x, y) {
return x[3].localeCompare(y[3]);
});
},
这是代码逻辑问题,建议给个代码片段( https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html ),这样大家可以更容易帮助到你
对象赋值是相当于传地址,赋值后是同一个地址。
var an_arr = that.data.arr
改为
var an_arr = that.data.arr.concat()
或
var an_arr = that.data.arr.slice()
或
var an_arr = JSON.parse(JSON.stringify(that.data.arr))
感谢帮助,解决了我的问题。
wechatide://minicode/aaJONpmF7pah 这是我的代码片段链接,以下是我的JS代码,wxml只有两个对应的按钮,谢谢各位!
//index.js
//获取应用实例
const app = getApp()
Page({
data: {
arr:[]
},
//事件处理函数
pxcs: function () {
var that = this;
console.log(that.data.arr)
var arr1 = new Array();
arr1 = [["中猫猫er", "E7555大号", "包背带", "150", "0.16"], ["卜要见、卜要贱", "CA0913大", "包背垫", "333", "0.18"]];
arr1.sort(function (x, y) {
return x[1].localeCompare(y[1]);
});
that.setData({
arr: arr1
})
console.log(this.data.arr);
console.log(that.data.arr)
},
pxcs2: function () {
var that = this;
console.log('请注意arr数组的排列顺序,被莫名发生了变化')
console.log(this.data.arr)
console.log(that.data.arr);
var an_arr = that.data.arr
//以下这个排序为什么 会影响that.data.arr
an_arr.sort(function (x, y) {
return x[3].localeCompare(y[3]);
});
},
})