> 웹 프론트엔드 > JS 튜토리얼 > ECMAScript5_javascript 기술의 새로운 Array 메소드에 대한 자세한 예

ECMAScript5_javascript 기술의 새로운 Array 메소드에 대한 자세한 예

WBOY
풀어 주다: 2016-05-16 15:06:31
원래의
1492명이 탐색했습니다.

ECMAScript5는 일련의 새로운 API 인터페이스를 제공합니다. 이러한 인터페이스의 대부분은 IE9, Chrome 및 FirFor 모두에서 지원됩니다. 또한 모든 브라우저에서 지원되지 않는 몇 가지 API도 있습니다. 지원되는 대부분의 API만 소개합니다. 새로운 API를 사용하면 원래 JavaScript 스타일을 유지하면서 매우 안정적인 클래스를 디자인할 수 있습니다.

ECMAScript5 표준은 2009년 12월 3일에 출시되었습니다. 이는 기존 배열 배열 작업을 개선하는 몇 가지 새로운 방법을 제공합니다. (호환성 참고)

ES5에는 총 9가지 배열 방법이 있습니다: http://kangax.github.io/compat-table/es5/

Array.prototype.indexOf
Array.prototype.lastIndexOf
Array.prototype.every
Array.prototype.some
Array.prototype.forEach
Array.prototype.map
Array.prototype.filter
Array.prototype.reduce
Array.prototype.reduceRight 
로그인 후 복사

아래에는 7가지 방법이 나열되어 있습니다. 처음 5가지 방법은 매우 일반적이며 많은 개발자가 사용합니다.

1.indexOf()

indexOf() 메서드는 배열에서 발견된 첫 번째 요소의 위치를 ​​반환하거나, 존재하지 않는 경우 -1을 반환합니다.

var arr = ['apple', 'orange', 'pear'],
found = false;
// 未使用
for (var i = 0, l = arr.length; i < l; i++) {
if (arr[i] === 'orange') {
found = true;
}
}
console.log("found:", found); // ==> found: true
// 使用后
console.log("found:", arr.indexOf("orange") != -1); // ==> found: true 
로그인 후 복사

2. 필터()

filter() 메소드는 필터 조건과 일치하는 새 배열을 생성합니다.

filter()를 사용하지 않는 경우:

var arr=[{"name":"apple", "count": 2},{"name":"orange", "count": 5},{"name":"pear", "count": 3},{"name":"orange", "count": 16},]
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i].name === "orange") {
newArr.push(arr[i]);
}
}
console.log("Filter results:", newArr); 
로그인 후 복사

사용된 필터():

var newArr = arr.filter(function(item) {
return item.name === "orange";
});
console.log("Filter results:", newArr); 
로그인 후 복사

3.forEach()

forEach는 각 요소에 해당하는 메서드를 실행하며 for 루프를 대체하는 데 사용됩니다.

var arr = [1, 2, 3, 4, 5, 6, 7, 8];
// 使用for循环
for (var i = 0, l = arr.length; i < l; i++) {
console.log(arr[i]);
}
// 使用forEach循环
arr.forEach(function(item, index) {
console.log(item);
}); 
로그인 후 복사

4. 지도()

map()은 배열의 각 요소에 대해 특정 작업(매핑)을 수행한 후 새 배열을 반환합니다.

var oldArr = [{first_name: "Colin",last_name: "Toh"}, {first_name: "Addy",last_name: "Osmani"}, {first_name: "Yehuda",last_name: "Katz"}];
function getNewArr() {
var newArr = [];
for (var i = 0; i < oldArr.length; i++) {
var item = oldArr[i];
item.full_name = [item.first_name, item.last_name].join(" ");
newArr[i] = item;
}
return newArr;
}
var personName = getNewArr();
personName.forEach(function(item, index) {
console.log(item);
})
/****输出结果:
Object {first_name: "Colin", last_name: "Toh", full_name: "Colin Toh"}
Object {first_name: "Addy", last_name: "Osmani", full_name: "Addy Osmani"}
Object {first_name: "Yehuda", last_name: "Katz", full_name: "Yehuda Katz"}
****/ 
로그인 후 복사

map() 메소드 사용:

function getNewArr() {
return oldArr.map(function(item, index) {
item.full_name = [item.first_name, item.last_name].join(" ");
return item;
})
}
var personName = getNewArr();
personName.forEach(function(item, index) {
console.log(item);
})
/****输出结果:
Object {first_name: "Colin", last_name: "Toh", full_name: "Colin Toh"}
Object {first_name: "Addy", last_name: "Osmani", full_name: "Addy Osmani"}
Object {first_name: "Yehuda", last_name: "Katz", full_name: "Yehuda Katz"}
****/ 
로그인 후 복사

5. 축소()

reduce()는 배열의 각 값(왼쪽에서 오른쪽으로)을 값으로 줄이는 누산기 기능을 구현할 수 있습니다. 이는 다음과 같이 이해될 수도 있습니다: 배열의 이전 항목과 후속 항목이 일종의 작업을 수행하고 최종 값을 누적하도록 합니다.

시나리오: 배열에 고유한 단어가 몇 개 있는지 세어보세요.

var arr = ["apple", "orange", "apple", "orange", "pear", "orange"];
function getWordCnt() {
var obj = {};
for (var i = 0; i < arr.length; i++) {
var item = arr[i];
obj[item] = (obj[item] + 1) || 1;
}
return obj;
}
console.log(getWordCnt());
// 输出结果:
// Object {apple: 2, orange: 3, pear: 1} 
로그인 후 복사

reduce() 사용 후:

var arr = ["apple", "orange", "apple", "orange", "pear", "orange"];
function getWordCnt() {
return arr.reduce(function(prev, next) {
prev[next] = (prev[next] + 1) || 1;
return prev;
}, {});
}
console.log(getWordCnt());
// 输出结果:
// Object {apple: 2, orange: 3, pear: 1} 
로그인 후 복사

6, array.some(callback[, thisObject]); 콜백: 특정 요소를 테스트하는 데 사용되는 함수입니다.

thisObject: 실행 콜백으로 사용되는 객체입니다.

배열의 특정 항목이 조건을 충족하는지 감지합니다.

var scores = [45, 60, 70, 65, 95, 85];
var current = 60;
function passed(score) {
return score > current;
}
console.log(scores.some(passed)); // == > true 
로그인 후 복사

7. array.every(callback[, thisObject]) callback : 함수는 각 요소를 테스트하는 데 사용됩니다. thisObject: 실행 콜백으로 사용되는 객체입니다.

배열의 각 항목이 조건을 충족하는지 확인하세요.

var scores = [45, 60, 70, 65, 95, 85];
var current = 60;
function passed(score) {
return score > current;
}
console.log(scores.every(passed)); // == > false
로그인 후 복사

위의 예에서는 ECMAScript5의 새로운 Array 메서드를 소개합니다. 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿