对多维数组进行排序,追加文本,然后继续按javascript中的数值对数组进行排序
Sort multi-dimensional array, append text and then continue to sort array by number value in javascript
我当前的多维数组排序代码:
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 box-shadow 语法)
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" 附加到数组值。
添加像素时,您得到的是字符串而不是数字。所以你需要解析出数字
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);
}
我当前的多维数组排序代码:
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 box-shadow 语法)
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" 附加到数组值。
添加像素时,您得到的是字符串而不是数字。所以你需要解析出数字
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);
}