对js数组的理解以及数组的一些习惯用法

时间:2023-01-29 17:49:26

对js数组的理解以及数组的一些习惯用法

在js中,数组可以通过字面量和new 表达式两种方法来生成。

通过字面量的例子

// 通过字面量的例子
var arr = [3,4,5];
console.log(typeof arr);

object

通过new表达式来调用Array的构造函数以生成数组

// 通过new表达式生成的例子
var arr = new Array(5);         // 对于参数只有1个的情况,该参数将会成为数组的长度
var arr = new Array(3,4,'foo'); // 参数的个数将会成为数组的长度
var arr = new Array('5');       // 此参数被认为是数组中下标为0的元素

根据具体情况,可以以不同的方式来解释传递给Array构造函数的参数。如果参数的数数量为1且是一个数值,它的含义是数组的长度(元素数量);如果参数的数量大于等于2,则这些参数代表的是数组的元素。 [^footnote]


对数组对象进行调用的方法

  • join() 方法将数组的所有元素组成一个字符串
var arr = new Array(3);
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr.join());
document.write("<br />");
document.write(arr.join("."));

George,John,Thomas
George.John.Thomas

//也可以直接对数组字面量进行方法调用

['George','John','Thomas'].join('_');

George_John_Thomas 
  • sort 方法对数组的元素进行排序
    可以通过sort方法对数组的元素值进行排序。本人在学习sort方法时遇到一点小问题。首先sort有两种比较方法,一种是不带参数的,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

  • 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的 值。
  • 若 a 等于 b,则返回 0。
  • 若 a 大于 b,则返回一个大于 0 的值。[^footnote]
// 无参数的例子
var arr = ['one','two','three','four','five','six'];
arr.sort();
["five","four","one","six","three","two"]

// 带参数的例子

var arr=['One','two','Four','six']
arr.sort();
arr.sort(function(s,t){
  return s.toLowerCase()>t.toLowerCae()?1:-1;
})
  • 通过pushjoin的组合来生成字符串的常用方法
var arr = [];
arr.push('<div>');
arr.push(Date());
arr.push('</div>');
arr.join('');
"<div> Sun Oct 24 2016 23:34:30 GMT+0900 (JST) </div>"
  • join对应的逆转换是string类的split方法,根据分割字符将字符串分割,之后将每一部分的字符串作为元素加入数组中,并将之返回。
var str = "Sun Oct 24 2016 23:34:30 GMT+0900 (JST) "
str.split('');
["Sun","Oct","24","2016","23:34:30","GMT+0900"]
str.split(/\s/); 以正则表达式的形式,对字符串进行分割
["Sun","Oct","24","2016","23:34:30","GMT+0900"]

-shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。

var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

document.write(arr + "<br />")
document.write(arr.shift() + "<br />")
document.write(arr)

George,John,Thomas
George
John,Thomas
  • unshift()把参数加载数组的前面,返回数组的长度
var arr = [1,2,3];
arr.unshift(4,5);
console.log(arr);
[4,5,1,2,4]
  • pop():删除数组的最后一个元素,返回删除的值。

目录

var list=[0,1,2];
var b = list.pop();
console.log(b);
2

未完


[1]:JavaScript编程全解 [(日)井上诚一郎]