>  기사  >  웹 프론트엔드  >  JavaScript 배열에 대한 일반적인 API 메소드 및 순회 메소드 요약(예제 포함)

JavaScript 배열에 대한 일반적인 API 메소드 및 순회 메소드 요약(예제 포함)

不言
不言앞으로
2019-04-11 10:36:002153검색

이 글은 JavaScript 배열에 대한 일반적인 API 메소드와 순회 메소드를 요약한 것입니다(예제 포함). 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

Array (array)

ES5 *

map

Syntax: [].map(function(item, index, array) {return xxx})
Function: 배열을 탐색하고 콜백으로 구성된 새 배열을 반환합니다. 반환 값. 원래 배열은 변경되지 않으며 빈 배열은 감지되지 않습니다.

forEach

구문: ​​[].forEach(function(item, index, array) {})
함수: 중단할 수 없습니다. try/catch를 사용하여 원래 배열을 변경하지 않고 중지하려면 새로운 오류를 발생시킬 수 있습니다

filter

구문: ​​[].filter(function(item, index, array) {})
Function: 필터, 필터링된 배열 반환, 수행 원래 배열을 변경하지 않으며 null이 아닙니다. 감지용 배열

const data = [-8, 9, 5, 3];
const res = data.filter(function(item) {
    if (item > 3) {
      return item
    }
});
console.log(res); // [9, 5]

some

Syntax: [].some(function(item, index, array) {})

Function : 하나의 항목이 true를 반환하면 전체가 true입니다. 원래 배열을 변경하지 않습니다

[].some(function(item, index, array) {})
功能:有一项返回true,则整体为true,不改变原数组

every

语法:[].every(function(item, index, array) {})
功能:需要全部符合条件才返回true,有一项返回false,则整体为false,不改变原数组

join

语法:[].join(str)
功能:返回通过指定连接符str把数组连接成字符串,不改变原数组

push / pop

语法:[].push(item)   /  [].pop(item)
功能:数组末尾推入push和弹出pop,返回改变后数组的长度/弹出项,改变原数组

unshift / shift

语法:[].unshift(item)   /  [].shift(item)
功能:数组头部推入unshift和弹出shift,返回改变后数组的长度/弹出项,改变原数组

sort(fn) / reverse

语法:[].sort(fn)   [].reverse()
功能:按规则排序与反转,改变原数组

splice

语法:[].splice(start, number, value1, value2...)
功能:返回删除元素组成的数组,从start处开始删除number个值后插入valueN参数列表到数组中,改变原数组

concat

语法:[].concat([])
功能:连接n(n >= 2)个数组,返回数组连接后的数组副本,浅拷贝,不改变原数组

slice

语法:[].slice(start, end)
功能:返回截断后的新数组,不改变原数组

indexOf / lastIndexOf(value, fromIndex)

语法:[].indexOf(value[, fromIndex])
功能:
查找数组项
indexOf 从fromIndex(默认为0)开始向后查找value
lastIndexOf 从fromIndex(默认为-1)开始向前查找value
返回value对应的下标

reduce / reduceRight

语法:reduce / reduceRight(callback[, initialValue])
功能:两两执行,prev 为上次化简函数的return值,cur 为当前值(从第二项开始)
callback 函数的参数:之前值(previousValue)、当前值(currentValue)、索引值(currentIndex)以及数组本身(array)
initialValue 可选的初始值,作为第一次调用回调函数时传给previousValue的值。也就是,为累加等操作传入起始值(额外的加值)

reduceRight是从数组的末尾开始

isArray *

语法:Array.isArray(value)
功能:用于确定参数value是否是一个Array

ES6

find *

ind(fn)`
功能:返回符合条件的第一个数组元素item

findIndex  *

语法:[].findIndex(fn)
功能:返回符合条件的第一个数组元素的索引

from  *

语法:[].fill(value[, start, end])
功能:将类似数组的对象和可遍历(iterable)的对象转为真正的数组
常用:

const set = new Set(3, 8, 9, 0)
Array.from(set)

entries *

语法:[].entries()
功能:返回迭代器:返回键值对

【注】Object.entries(obj)方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for...in 循环遍历该对象时返回的顺序一致(区别在于 for-in 循环也枚举原型链中的属性)【MDN】
[].entries()是Array.prototype上的方法
keys/values 类似

//数组
const arr = ['a', 'b', 'c'];
for(let v of arr.entries()) {
    console.log(v)
}
// [0, 'a'] [1, 'b'] [2, 'c']

//Set
const arr1 = new Set(['a', 'b', 'c']);
for(let v of arr1.entries()) {
    console.log(v)
}
// ['a', 'a'] ['b', 'b'] ['c', 'c']

//Map
const arr2 = new Map();
arr2.set('a', 'a');
arr2.set('b', 'b');
for(let v of arr2.entries()) {
    console.log(v)
}
// ['a', 'a'] ['b', 'b']

keys *

语法:[].keys()
功能:返回迭代器:返回键key(即上面的每个数组中的第一个值)

values

语法:[].values()every

구문: ​​[].every(function(item, index, array) {} )🎜기능: 모든 조건이 충족되어야 합니다. true를 반환하고, 한 항목이 false를 반환하면 전체가 false입니다. 원래 배열을 변경하지 않습니다🎜🎜join🎜🎜구문: ​​[].join(str)🎜Function: Return through 커넥터 str을 지정하여 배열을 문자열로 연결합니다. 원래 배열을 변경하지 않습니다🎜🎜push / pop🎜🎜Syntax : [].push(item) / [].pop(item)🎜기능: 배열 끝에서 푸시 앤 팝, 변경된 배열의 길이/팝업 항목을 반환, 원래 배열 변경🎜🎜unshift /shift🎜🎜구문: ​​[].unshift(item) / [].shift(item)🎜기능: unshift 및 팝업을 누릅니다. 배열의 선두에서 Shift, 변경된 배열의 길이/팝업 항목을 반환, 원본 배열 변경🎜 🎜sort(fn) / reverse🎜🎜구문: ​​[]. sort(fn) [].reverse()🎜함수: 규칙에 따라 정렬 및 역순, 원래 배열 변경🎜🎜splice🎜🎜구문: ​​[].splice( start, number, value1, value2...)🎜함수: start부터 시작하여 삭제된 요소로 구성된 배열을 반환합니다. number 값 삭제를 시작하고 valueN 매개변수 목록을 배열에 삽입하세요. 원본 배열 변경🎜🎜concat🎜🎜구문: ​​[ ].concat([])🎜 기능: n(n >= 2) 배열 연결, 배열 연결 후 배열 복사본 반환, 얕은 복사본, 원래 배열을 변경하지 않음🎜🎜 Slice🎜🎜구문: ​​ [].slice(start, end)🎜Function: 잘린 새 배열을 반환합니다. 원래 배열은 변경하지 않습니다🎜🎜indexOf / lastIndexOf(value, fromIndex)🎜🎜구문: ​​[].indexOf(value[, fromIndex])🎜기능: 🎜배열 항목 찾기🎜indexOf fromIndex에서 시작(기본값은 0) 뒤로 찾기 >🎜lastIndexOf는 fromIndex(기본값은 -1)에서 시작하고 value를 앞으로 검색합니다.🎜value🎜🎜reduce / ReduceRight 🎜🎜에 해당하는 첨자를 반환합니다. 구문: Reduce / ReduceRight(callback[,initialValue])🎜Function: 쌍으로 실행됨, prev는 마지막 단순화된 함수의 반환 값, cur은 현재 값(두 번째 항목부터 시작) 🎜콜백 함수의 매개변수 : 이전 값(previousValue), 현재 값(currentValue), 인덱스 값(currentIndex) 및 배열 자체(array) 🎜initialValue 선택적 초기 값, 콜백 함수가 처음 호출될 때 이전 값에 전달되는 값. 즉, 누적과 같은 작업에 대한 시작 값(추가 보너스)을 전달합니다. 🎜🎜reduceRight는 배열의 끝에서 시작합니다. 🎜🎜isArray *🎜🎜구문: ​​Array.isArray(value) 🎜Function : 매개변수 값이 Array🎜

ES6

🎜find *🎜🎜ind(fn)`🎜Function인지 확인하는 데 사용됩니다. item 조건을 충족하는 첫 번째 배열 요소를 반환합니다. 🎜 🎜findIndex *🎜🎜구문: ​​[].findIndex(fn) 🎜기능: *🎜🎜에서 조건을 충족하는 첫 번째 배열 요소의 인덱스🎜🎜를 반환합니다. 구문: [].fill(value[, start, end]) 🎜기능: 배열형 객체와 순회 가능한 (iterable) 객체를 실제 배열로 변환 🎜일반적으로 사용되는 : 🎜
Array.of(7);       // [7] 
Array.of(1, 2, 3); // [1, 2, 3]

Array(7);          // [ , , , , , , ]
Array(1, 2, 3);    // [1, 2, 3]
🎜항목 *🎜🎜구문: ​​[].entries()🎜함수: 반복자 반환: 키-값 쌍 반환🎜🎜[참고]Object.entries(obj) The code> 메소드는 객체를 탐색하기 위해 for...in 루프를 사용할 때 반환된 것과 동일한 순서로 정렬된 지정된 객체의 열거 가능한 속성에 대한 키-값 쌍의 배열을 반환합니다(차이점은 for-in 루프도 또한 프로토타입 체인 속성 열거) [MDN] 🎜 그리고 <code>[].entries()는 Array.prototype의 메소드입니다. 🎜keys/values는 🎜rrreee🎜keys와 유사합니다. *🎜🎜구문: ​​[].keys( )🎜함수: 반환 반복자: 반환 키(즉, 위의 각 배열의 첫 번째 값)🎜🎜values🎜🎜구문: ​​[].values() 🎜 함수: 반환 반복자: 반환 값 값(예: 위의 각 배열의 두 번째 값) 🎜

includes *

语法:[].includes(val[, fromIndex])
功能:用于从fromIndex判断数组中是否包含val,可替代ES5中的 indexOf

copyWithin

语法:[].copyWithin(target[, start[, end]])
功能:浅复制数组的一部分(start~end)到同一数组中的另目标位置target,返回改变后的数组,而不修改其大小;start默认为0, end默认为length-1; 改变原数组

of

语法:Array.of()
功能:创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型

Array构造函数 & Array.of() 区别
实例说明

Array.of(7);       // [7] 
Array.of(1, 2, 3); // [1, 2, 3]

Array(7);          // [ , , , , , , ]
Array(1, 2, 3);    // [1, 2, 3]

fill

语法:[].fill(value[, start, end])
功能:用指定的元素填充数组,可用于初始化数组,返回改变后的数组,改变原数组
填充值(value),填充起始位置(start,默认为0),填充结束位置(end,默认为数组length)。

遍历

数组

map/forEach/some/every/filter 见上

for

for...in

遍历所有可枚举属性,常用于遍历对象Object

for...of

遍历所有可迭代iterable的对象

对象【属性】

for...in

循环遍历对象自身的和继承的可枚举属性(不含Symbol属性)【可枚举 - Symbol】

Object.keys(obj)

返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含Symbol属性)【自身可枚举 - Symbol】

Object.getOwnPropertyNames(obj)

返回一个数组,包含对象自身的所有属性(不含Symbol属性,但是包括不可枚举属性)【自身 - Symbol】

Object.getOwnPropertySymbols(obj)

返回一个数组,包含对象自身的所有Symbol属性【自身的Symbol】

Reflect.ownKeys(obj)

返回一个数组,包含对象自身的所有属性,不管是属性名是Symbol或字符串,也不管是否可枚举  【自身所有】

【相关推荐:JavaScript视频教程

위 내용은 JavaScript 배열에 대한 일반적인 API 메소드 및 순회 메소드 요약(예제 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제