假设我有一些对象的数组:
var array = [{id: 1, date: Mar 12 2012 10:00:00 AM}, {id: 2, date: Mar 8 2012 08:00:00 AM}];
Run Code Online (Sandbox Code Playgroud)
如何从最接近当前日期和时间的日期开始按日期元素对此数组进行排序?请记住,数组可能有很多对象,但为了简单起见,我使用了2.
我会使用sort函数和自定义比较器吗?
UPDATE
在我的具体情况下,我希望日期安排从最新到最旧.结果我不得不颠倒简单函数的逻辑:
array.sort(function(a, b) {
a = new Date(a.dateModified);
b = new Date(b.dateModified);
return a>b ? -1 : a<b ? 1 : 0;
});
Run Code Online (Sandbox Code Playgroud)
这会对最近的日期进行排序.
我有一个数组(请参阅下面的数组中的一个对象),我需要使用JavaScript对firstname进行排序.我该怎么做?
var user = {
bio: null,
email: "user@domain.com",
firstname: "Anna",
id: 318,
lastAvatar: null,
lastMessage: null,
lastname: "Nickson",
nickname: "anny"
};
Run Code Online (Sandbox Code Playgroud) PHP 7将于今年11月推出,它将引入Spaceship(<=>)运营商.它是什么以及它是如何工作的?
关于PHP运算符的一般参考问题,这个问题已经有了答案.
假设你有一个像这样的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)
但是如何使它与对象列表一起使用?
每个JS意见领袖都说扩展原生对象是一种不好的做法.但为什么?我们是否获得了性能?他们是否害怕有人以"错误的方式"做到这一点,并添加了可枚举的类型Object,几乎破坏了任何对象上的所有循环?
以TJ Holowaychuk的should.js为例.他增加了一个简单的getter来Object,一切工作正常(来源).
Object.defineProperty(Object.prototype, 'should', {
set: function(){},
get: function(){
return new Assertion(Object(this).valueOf());
},
configurable: true
});
Run Code Online (Sandbox Code Playgroud)
这真的很有道理.例如,可以扩展Array.
Array.defineProperty(Array.prototype, "remove", {
set: function(){},
get: function(){
return removeArrayElement.bind(this);
}
});
var arr = [0, 1, 2, 3, 4];
arr.remove(3);
Run Code Online (Sandbox Code Playgroud)
是否有任何反对扩展本机类型的论据?
从这个原始问题,我将如何在多个字段上应用排序?
使用这种略微适应的结构,我如何排序城市(升序)然后价格(降序)?
var homes = [
{"h_id":"3",
"city":"Dallas",
"state":"TX",
"zip":"75201",
"price":"162500"},
{"h_id":"4",
"city":"Bevery Hills",
"state":"CA",
"zip":"90210",
"price":"319250"},
{"h_id":"6",
"city":"Dallas",
"state":"TX",
"zip":"75000",
"price":"556699"},
{"h_id":"5",
"city":"New York",
"state":"NY",
"zip":"00010",
"price":"962500"}
];
Run Code Online (Sandbox Code Playgroud)
我喜欢这个事实而不是给出一个通用方法的答案.在我计划使用此代码的地方,我将不得不对日期以及其他内容进行排序."引导"物体的能力似乎很方便,如果不是有点麻烦.
我试图将这个答案构建成一个很好的通用示例,但我没有太多运气.
我需要这样做:
(抱歉没有javascript语法 - 仍在学习对象语言:))
对象=车
attibutes:顶级品牌....
现在我想按照最高速度,品牌顺序排列这些车的清单......
我该怎么做(请注意解决方案必须只是javascript,没有PHP或其他东西)?
我有一个非常简单的JSON对象,如下所示:
{
"people":[
{
"f_name":"john",
"l_name":"doe",
"sequence":"0",
"title":"president",
"url":"google.com",
"color":"333333"
},
{
"f_name":"michael",
"l_name":"goodyear",
"sequence":"0",
"title":"general manager",
"url":"google.com",
"color":"333333"
}
]
}
Run Code Online (Sandbox Code Playgroud)
现在,这是从我的服务器端代码返回的,我运行jQuery.each以形成必要的html并输出结果.
现在我正在做的是向包含我的排序信息的服务器发送一个AJAX调用...例如"Title DESC"并重新运行SQL查询以返回新的结果集.但我想避免这种情况,并使用jQuery对生成的JSON进行排序,以防止往返服务器和多个数据库访问.
我怎样才能使用jQuery实现这一目标?
我使用atocomplete.jquery插件来建议输入文本,结果我得到这个数组:
['White 023','White','White flower', 'Teatr']
Run Code Online (Sandbox Code Playgroud)
当我开始搜索从"te"子串开始的东西时,它向我显示如下的数组排序:
'White','White 023','White flower', 'Teatr'
Run Code Online (Sandbox Code Playgroud)
我需要这样的东西:
'Teatr','White','White 023','White flower'
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
您如何按距离对这些对象进行排序.那么你有从最小距离到最大距离排序的对象?
Object { distance=3388, duration="6 mins", from="Lenchen Ave, Centurion 0046, South Africa", more...}
Object { distance=13564, duration="12 mins", from="Lenchen Ave, Centurion 0046, South Africa", more...}
Object { distance=4046, duration="6 mins", from="Lenchen Ave, Centurion 0046, South Africa", more...}
Object { distance=11970, duration="17 mins", from="Lenchen Ave, Centurion 0046, South Africa", more...}
Run Code Online (Sandbox Code Playgroud) javascript ×8
sorting ×4
arrays ×3
autocomplete ×1
datetime ×1
function ×1
jquery ×1
json ×1
object ×1
oop ×1
operators ×1
php ×1
php-7 ×1
properties ×1
prototype ×1