2.5.3和2.5.4是数组部分的排序与查询搜索部分,内容不多,理解起来也不难。

2.5.3搜索和排序

排序方法

js数组的排序方法为sort方法和reverse方法;
reverse方法可以将数组以倒序输出。

var numbers = [1, 3, 2, 4, 5];
numbers.reverse();
console.log(numbers);

输出结果为:

[ 5, 4, 2, 3, 1 ]

sort方法为数组的排序方法。

var numbers = [1, 3, 2, 4, 5];
numbers.sort();
console.log(numbers);

输出结果为:

[ 1, 2, 3, 4, 5 ]

sort方法可以自定义排序方法。

var numbers = [1, 3, 1, 2, 4, 5];
numbers.sort(function (i, j) {
    return i - j;
});
console.log(numbers);

输出结果为:

[ 1, 1, 2, 3, 4, 5 ]

对象排序:

var persons = [{
        name: 'mjs',
        age: '22'
    },
    {
        name: 'ly',
        age: '21'
    },
    {
        name: 'zwj',
        age: '24'
    },
    {
        name: 'zpj',
        age: '17'
    }
];

persons.sort(sortPersons);
console.log(persons);

function sortPersons(i, j) {
    return i.age - j.age;
}

输出结果为:

[ { name: 'zpj', age: '17' },
  { name: 'ly', age: '21' },
  { name: 'mjs', age: '22' },
  { name: 'zwj', age: '24' } ]

很整齐……

搜索方法

搜索方法就两个,跟java的一模一样:

var numbers = [1, 3, 1, 2, 4, 5];
console.log(numbers.indexOf(3));
console.log(numbers.lastIndexOf(1));

输出结果为:

1
2

本来以为是什么高级牛逼的功能,我想多了。就是返回某个元素的下标。
顺便一提,没有的话会返回-1。

2.5.4输出数组为字符串

这个更简单,只有一个方法。

var names = ['mjs', 'ly', 'zwj', 'zpj'];
console.log(names.join('='));

输出结果为:

ly=mjs=zpj=zwj

join的参数是连接每个数组元素的字符,其实明明直接用toString()输出不也可以么…… 只不过使用逗号连接的。

var names = ['mjs', 'ly', 'zwj', 'zpj'];
console.log(names.toString());

输出结果为:

ly,mjs,zpj,zwj
最后修改日期: 2018年12月6日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。