javascript - 按属性对 JavaScript 对象数组进行排序时数字有什么问题

标签 javascript string numbers sorting

以下是按某些属性对对象数组进行排序的函数。

function createCompareFunc(propertyName){ 
  return function(obj1, obj2){    
    var val1=obj1[propertyName];   
    var val2=obj1[propertyName];
    return val1-val2;    
  }
}

var data=[{name:'a', age:12},{name:'b',age:5}];    
console.log(typeof data[0]['age']); //number    
console.log(data.sort(createCompareFunc('name')));    
//[Object{name="a", age=12},Object{name="b",age=5}]   
console.log(data.sort(createCompareFunc('age')));     
//[Object{name="a", age=12},Object{name="b",age=5}], but I want to get '[Object{name="b",age=5},Object{name="a", age=12}]'

数字有什么问题吗?

最佳答案

第 6 行输入错误 obj1 而不是 obj2。

关于javascript - 按属性对 JavaScript 对象数组进行排序时数字有什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11913055/

相关文章:

javascript - HTML 样式 ="overflow:hidden"使用 JavaScript/jQuery 访问内部溢出的元素?

java - 12.1 可以精确地表示为一个 float 吗?

java - 字符串的额外 Java 输入验证

python - 如何将字符串数字转换为列表中的整数?

ios - 是否有将数字转换为十六进制字符串的快速 native 函数?

javascript - 如何找到屏幕的中心?

javascript - d3 v5 中更新路径的平滑过渡

javascript - 如何为 axios baseURL 设置 Nuxt.js 的配置以在全局范围内工作?

javascript按名称而不是id模拟文本输入

c - 在 C 中初始化某个结构字段 on-initialization