Appearance
介绍
项目中学生答题结束,题干类型单选题和多选题混乱在一起呈现,需求想分开,单选题在前面,多选题在后面。
届时想到 sort 排序。
sort() 方法用于对数组的元素进行排序,并返回数组。默认排序顺序是根据字符串 UniCode 码。因为排序是按照字符串 UniCode 码的顺序进行排序的,所以首先应该把数组元素都转化成字符串(如有必要),以便进行比较。
用法:arrayObject.sort(sortby);
参数 sortby 可选,用来规定排序的顺序,但必须是函数。
数组中对象某个值排序
查看数据结构如下:
items: [
{pk_exam_use_question: "586601", is_send: "0", fk_question: "11494", fk_exam: "103", object_id: "3690",…}
{pk_exam_use_question: "586608", is_send: "0", fk_question: "11496", fk_exam: "103", object_id: "3690",…}
{pk_exam_use_question: "586615", is_send: "0", fk_question: "333754", fk_exam: "103",…}
{pk_exam_use_question: "586622", is_send: "0", fk_question: "333838", fk_exam: "103",…}
{pk_exam_use_question: "586629", is_send: "0", fk_question: "332902", fk_exam: "103",…}
{pk_exam_use_question: "586636", is_send: "0", fk_question: "332901", fk_exam: "103",…}
{pk_exam_use_question: "586643", is_send: "0", fk_question: "333845", fk_exam: "103",…}
]
items: [
{pk_exam_use_question: "586601", is_send: "0", fk_question: "11494", fk_exam: "103", object_id: "3690",…}
{pk_exam_use_question: "586608", is_send: "0", fk_question: "11496", fk_exam: "103", object_id: "3690",…}
{pk_exam_use_question: "586615", is_send: "0", fk_question: "333754", fk_exam: "103",…}
{pk_exam_use_question: "586622", is_send: "0", fk_question: "333838", fk_exam: "103",…}
{pk_exam_use_question: "586629", is_send: "0", fk_question: "332902", fk_exam: "103",…}
{pk_exam_use_question: "586636", is_send: "0", fk_question: "332901", fk_exam: "103",…}
{pk_exam_use_question: "586643", is_send: "0", fk_question: "333845", fk_exam: "103",…}
]
数组中每个对象都有一个试题类型 type 字段,使用 1,2 表示。
编写函数处理试题排序:
sortExamType: function(type) {
return function(x, y) {
var v1 = x.type;
var v2 = y.type;
return v1 - v2;
}
}
sortExamType: function(type) {
return function(x, y) {
var v1 = x.type;
var v2 = y.type;
return v1 - v2;
}
}
其中:
比较函数应该具有两个参数 a 和 b,其返回值如下:
若 a 小于 b,即 a - b 小于零,则返回一个小于零的值,数组将按照升序排列。
若 a 等于 b,则返回 0。
若 a 大于 b, 即 a - b 大于零,则返回一个大于零的值,数组将按照降序排列。
调用:
list = list.sort(sortExamType('type'))
list = list.sort(sortExamType('type'))