javascript按字符串属性对对象数组进行排序

标签 javascript

<分区>

我正在尝试通过属性 title 对对象数组进行排序。这是我正在运行的代码片段,但它没有对任何内容进行排序。数组按原样显示。 P.S 我看了以前的类似问题。例如这个here建议并使用我正在使用的相同方法。

JavaScript:

function sortLibrary() {
    // var library is defined, use it in your code
    // use console.log(library) to output the sorted library data
    console.log("inside sort");
    library.sort(function(a,b){return a.title - b.title;});
    console.log(library);
} 

// tail starts here
var library = [
    {
        author: 'Bill Gates',
        title: 'The Road Ahead',
        libraryID: 1254
    },
    {
        author: 'Steve Jobs',
        title: 'Walter Isaacson',
        libraryID: 4264
    },
    {
        author: 'Suzanne Collins',
        title: 'Mockingjay: The Final Book of The Hunger Games',
        libraryID: 3245
    }
];

sortLibrary();

html代码:

<html>
<head>
    <meta charset="UTF-8">
</head>

<body>
<h1> Test Page </h1>
<script src="myscript.js"> </script>
</body>

</html>

最佳答案

你试过这样吗?它按预期工作

library.sort(function(a,b) {return (a.title > b.title) ? 1 : ((b.title > a.title) ? -1 : 0);} );

var library = [
    {
        author: 'Bill Gates',
        title: 'The Road Ahead',
        libraryID: 1254
    },
    {
        author: 'Steve Jobs',
        title: 'Walter Isaacson',
        libraryID: 4264
    },
    {
        author: 'Suzanne Collins',
        title: 'Mockingjay: The Final Book of The Hunger Games',
        libraryID: 3245
    }
];
console.log('before sorting...');
console.log(library);
library.sort(function(a,b) {return (a.title > b.title) ? 1 : ((b.title > a.title) ? -1 : 0);} );

console.log('after sorting...');
console.log(library);

关于javascript按字符串属性对对象数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45924821/

相关文章:

javascript - 使用浏览器后退按钮时,请记住该部分的折叠/展开状态

javascript - 提交后 Facebox 窗口关闭

javascript - 如何从客户端安全地发送密码?

javascript - 格式化文本字段时 react 光标跳跃

javascript - JavaScript 无法运行

javascript - 开发工具中的奇怪错误消息 - Chrome

javascript - $http 设置 header 错误 - angularjs

javascript - Matter.js 禁用不同复合 Material 之间的碰撞

javascript - 通过for循环连接字符串

javascript - 将多个表单 datePicker 数据发送到相同的目的地