我目前用于排序多维数组的代码:
s.storeValues = [];
convertToArray: function(e){
var xVal = Math.floor(e.offsetX / s.pixSize) * s.pixSize;
var yVal = Math.floor(e.offsetY / s.pixSize) * s.pixSize;
s.storeValues.push([xVal, yVal]);
var compare = function(a, b) {return a[0] - b[0]; };
s.storeValues.sort(compare);
}
问题是当我尝试添加(为了将px添加到数字+模拟css框阴影语法)
for(var i = 0; i < 2; i++){
s.storeValues[s.storeValues.length - 1][i] += "px";
}
排序不再有效。关于如何从这里开始的任何想法,非常感谢。谢谢!
以上代码全部(供参考):
s.storeValues = [];
convertToArray: function(e){
var xVal = Math.floor(e.offsetX / s.pixSize) * s.pixSize;
var yVal = Math.floor(e.offsetY / s.pixSize) * s.pixSize;
s.storeValues.push([xVal, yVal]);
var compare = function(a, b) {return a[0] - b[0]; };
s.storeValues.sort(compare);
for(var i = 0; i < 2; i++){
s.storeValues[s.storeValues.length - 1][i] += "px";
}
}
编辑:我希望在解析和排序数字后,将“px”附加到数组值。
答案 0 :(得分:2)
添加像素时,您有字符串而不是数字。所以你需要解析数字
convertToArray: function(e){
var xVal = (Math.floor(e.offsetX / s.pixSize) * s.pixSize) + "px";
var yVal = (Math.floor(e.offsetY / s.pixSize) * s.pixSize) + "px";
s.storeValues.push([xVal, yVal]);
var compare = function(a, b) { return parseFloat(a[0]) - parseFloat(b[0]); };
s.storeValues.sort(compare);
}