我正在尝试优化一个在JavaScript中对字符串进行二进制搜索的函数.
二进制搜索要求您知道密钥是==枢轴还是<枢轴.
但这需要在JavaScript中进行两次字符串比较,这与C具有strcmp()返回三个值(-1, 0, +1)(小于,等于,大于)的函数的类似语言不同.
JavaScript中是否存在这样的本机函数,它可以返回三元值,以便在二进制搜索的每次迭代中只需要进行一次比较?
假设你有一个像这样的javascript类
var DepartmentFactory = function(data) {
this.id = data.Id;
this.name = data.DepartmentName;
this.active = data.Active;
}
Run Code Online (Sandbox Code Playgroud)
假设您创建了该类的多个实例并将它们存储在一个数组中
var objArray = [];
objArray.push(DepartmentFactory({Id: 1, DepartmentName: 'Marketing', Active: true}));
objArray.push(DepartmentFactory({Id: 2, DepartmentName: 'Sales', Active: true}));
objArray.push(DepartmentFactory({Id: 3, DepartmentName: 'Development', Active: true}));
objArray.push(DepartmentFactory({Id: 4, DepartmentName: 'Accounting', Active: true}));
Run Code Online (Sandbox Code Playgroud)
所以我现在将创建一个由对象创建的对象数组DepartmentFactory.我如何使用该array.sort()方法按DepartmentName每个对象的属性对这个对象数组进行排序?
array.sort()排序字符串数组时,该方法可以正常工作
var myarray=["Bob", "Bully", "Amy"];
myarray.sort(); //Array now becomes ["Amy", "Bob", "Bully"]
Run Code Online (Sandbox Code Playgroud)
但是如何使它与对象列表一起使用?