对多维数组进行排序,追加文本,然后继续按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);
}