对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;
})
- 通过push与join的组合来生成字符串的常用方法
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编程全解 [(日)井上诚一郎]