关于javascript:JS学习笔记

40次阅读

共计 3001 个字符,预计需要花费 8 分钟才能阅读完成。

Array 对象

静态方法

Array.isArray() typeof运算符只能显示数组的类型是 Object,而Array.isArray 办法能够辨认数组。

Array.isArray办法返回一个布尔值,示意参数是否为数组。它能够补救 typeof 运算符的有余。

var arr = [1, 2, 3];

typeof arr // "object"
Array.isArray(arr) // true

push(),pop()

push办法用于在数组的末端增加一个或多个元素,并返回增加新元素后的数组长度。留神,该办法会扭转原数组。

var arr = [];

arr.push(1) // 1
arr.push('a') // 2
arr.push(true, {}) // 4
arr // [1, 'a', true, {}]

pop办法用于删除数组的最初一个元素,并返回该元素。留神,该办法会扭转原数组。

var arr = ['a', 'b', 'c'];

arr.pop() // 'c'
arr // ['a', 'b']

shift(),unshift()

shift()办法用于删除数组的第一个元素,并返回该元素。留神,该办法会扭转原数组。

var a = ['a', 'b', 'c'];

a.shift() // 'a'
a // ['b', 'c']

unshift()办法用于在数组的第一个地位增加元素,并返回增加新元素后的数组长度。留神,该办法会扭转原数组。

var a = ['a', 'b', 'c'];

a.unshift('x'); // 4
a // ['x', 'a', 'b', 'c']

join()

join()办法以指定参数作为分隔符,将所有数组成员连贯为一个字符串返回。如果不提供参数,默认用逗号分隔。

var a = [1, 2, 3, 4];

a.join('') //'1 2 3 4'a.join(' | ') //"1 | 2 | 3 | 4"a.join() //"1,2,3,4"

通过 call 办法,这个办法也能够用于字符串或相似数组的对象。

Array.prototype.join.call('hello', '-')
// "h-e-l-l-o"

var obj = {0: 'a', 1: 'b', length: 2};
Array.prototype.join.call(obj, '-')
// 'a-b'

concat()

concat办法用于多个数组的合并。它将新数组的成员,增加到原数组成员的后部,而后返回一个新数组,原数组不变。

['hello'].concat(['world'])
// ["hello", "world"]

['hello'].concat(['world'], ['!'])
// ["hello", "world", "!"]

[].concat({a: 1}, {b: 2})
// [{a: 1}, {b: 2}]

[2].concat({a: 1})
// [2, {a: 1}]

reverse()

reverse办法用于颠倒排列数组元素,返回扭转后的数组。留神,该办法将扭转原数组。

var a = ['a', 'b', 'c'];

a.reverse() // ["c", "b", "a"]
a // ["c", "b", "a"]

slice()

slice()办法用于提取指标数组的一部分,返回一个新数组,原数组不变。

arr.slice(start, end);

var a = ['a', 'b', 'c'];
a.slice(0) // ["a", "b", "c"]
a.slice(1) // ["b", "c"]
a.slice(1, 2) // ["b"]
a.slice(2, 6) // ["c"]
a.slice() // ["a", "b", "c"]

splice()

splice()办法用于删除原数组的一部分成员,并能够在删除的地位增加新的数组成员

arr.splice(start, count, addElement1, addElement2, ...);
var a = ['a', 'b', 'c', 'd', 'e', 'f'];
a.splice(4, 2) // ["e", "f"]
a // ["a", "b", "c", "d"]
var a = ['a', 'b', 'c', 'd', 'e', 'f'];
a.splice(4, 2, 1, 2) // ["e", "f"]
a // ["a", "b", "c", "d", 1, 2]

sort()

sort办法对数组成员进行排序,默认是依照字典程序排序。排序后,原数组将被扭转。

['d', 'c', 'b', 'a'].sort()
// ['a', 'b', 'c', 'd']

[4, 3, 2, 1].sort()
// [1, 2, 3, 4]

[11, 101].sort()
// [101, 11]

[10111, 1101, 111].sort()
// [10111, 1101, 111]

map()

map()办法将数组的所有成员顺次传入参数函数,而后把每一次的执行后果组成一个新数组返回。

var numbers = [1, 2, 3];

numbers.map(function (n) {return n + 1;});
// [2, 3, 4]

numbers
// [1, 2, 3]

forEach()

forEach()办法与 map() 办法很类似,forEach()办法不返回值,只用来操作数据。

function log(element, index, array) {console.log('[' + index + '] =' + element);
}

[2, 5, 9].forEach(log);
// [0] = 2
// [1] = 5
// [2] = 9

filter()

filter()办法用于过滤数组成员,满足条件的成员组成一个新数组返回。

[1, 2, 3, 4, 5].filter(function (elem) {return (elem > 3);
})
// [4, 5]
var arr = [0, 1, 'a', false];

arr.filter(Boolean)
// [1, "a"]

filter()办法返回数组 arr 外面所有布尔值为 true 的成员。

some(),every()

some办法是只有一个成员的返回值是 true,则整个some 办法的返回值就是true,否则返回false

var arr = [1, 2, 3, 4, 5];
arr.some(function (elem, index, arr) {return elem >= 3;});
// true

every办法是所有成员的返回值都是 true,整个every 办法才返回true,否则返回false

var arr = [1, 2, 3, 4, 5];
arr.every(function (elem, index, arr) {return elem >= 3;});
// false

reduce(),reduceRight()

reduce()办法和 reduceRight() 办法顺次解决数组的每个成员,最终累计为一个值。它们的差异是,reduce()是从左到右解决(从第一个成员到最初一个成员),reduceRight()则是从右到左(从最初一个成员到第一个成员),其余齐全一样。

[1, 2, 3, 4, 5].reduce(function (a, b) {console.log(a, b);
  return a + b;
})
// 1 2
// 3 3
// 6 4
// 10 5
// 最初后果:15

indexOf(),lastIndexOf()

indexOf办法返回给定元素在数组中第一次呈现的地位,如果没有呈现则返回-1

var a = ['a', 'b', 'c'];

a.indexOf('b') // 1
a.indexOf('y') // -1

正文完
 0