ES5 Array
forEach
1. 반복, 순환.forEach 방법의function 리셋은 3개의 매개 변수를 지원하고, 첫 번째는 훑어보는 그룹 내용입니다.두 번째는 대응하는 그룹 인덱스이고, 세 번째는 그룹 자체다.
var sum = 0;
[1, 2, 3, 4].forEach(function (item, index, array) {
console.log(array[index] == item); // true
sum += item;
});
console.log(sum); // 10
2. forEach는 필수적인 리셋 함수 파라미터를 받아들일 수 있을 뿐만 아니라 선택할 수 있는 상하문 파라미터도 받아들일 수 있다. (리셋 함수 안에 있는this 가리키는 바꿈)
var database = {
users: [" ", " ", " "],
sendEmail: function (user) {
if (this.isValidUser(user)) {
console.log(" ," + user);
} else {
console.log(" ," + user + ", ");
}
},
isValidUser: function (user) {
return /^ /.test(user);
}
};
//
database.users.forEach( // database.users
database.sendEmail, //
database // database this
);
3. forEach는 DOM 요소를 반복합니다.
var eleDivs = document.getElementsByTagName("div");
Array.prototype.forEach.call(eleDivs, function (div) {
console.log(" div :" + (div.className || " "));
});
map
1. 맵맵맵은 원수 그룹이'맵'에 대응하는 새 그룹[]으로 표시됩니다.map() 기본 사용법은 forEach와 유사합니다
var data = [1, 2, 3, 4];
var arrayOfSquares = data.map(function (item) {
return item * item;
});
console.log(arrayOfSquares); // 1, 4, 9, 16
2. 실제 사용할 때 우리는 맵 방법을 이용하여 대상 그룹의 특정 속성 값을 쉽게 얻을 수 있다
var users = [
{ name: " ", "email": "[email protected]" },
{ name: " ", "email": "[email protected]" },
{ name: " ", "email": "[email protected]" }
];
var emails = users.map(function (user) { return user.email; });
console.log(emails.join(", ")); // [email protected], [email protected], [email protected]
filter
1. 필터링, 필터링을 의미합니다.반환 수조의 하위 집합, 반환 함수는 논리적으로 반환 여부를 판단하는 데 사용되며,true를 반환하면 현재 요소를 반환 수조에 추가하고false는 추가하지 않습니다
var emailsZhang = users
//
.map(function (user) { return user.email; })
// zhang
.filter(function (email) { return /^zhang/.test(email); });
console.log(emailsZhang.join(", ")); // [email protected]
some
특정 항목이 조건에 부합되는 것을 가리킨다
var scores = [5, 8, 3, 10];
var current = 7;
function higherThanCurrent(score) {
return score > current;
}
if (scores.some(higherThanCurrent)) {
console.log(" !");
}
every
모든 항목이 조건에 부합되어야 한다는 것을 가리킨다
if (scores.every(higherThanCurrent)) {
console.log(" !");
} else {
console.log(" , !");
}
indexOf
indexOf 방법은 문자열에string이 있습니다.indexOf(searchString,position)(한 위치부터 문자가 있는 위치를 찾습니다)(되돌아오는 것을 찾지 못했습니다-1) 그룹에서 사용하는 방법은 유사합니다
var data = [2, 5, 7, 3, 5];
console.log(data.indexOf(5, "x")); // 1 ("x" )
console.log(data.indexOf(5, "3")); // 4 ( 3 )
console.log(data.indexOf(4)); // -1 ( )
console.log(data.indexOf("5")); // -1 ( , 5 !== "5")
lastIndexOf
문자열의 끝에서부터 찾는 것이지 처음부터 찾는 것이 아니다.또 하나는 fromIndex의 기본값이 array라는 것이다.length - 0이 아니라 1.
var data = [2, 5, 7, 3, 5];
console.log(data.lastIndexOf(5)); // 4
console.log(data.lastIndexOf(5, 3)); // 1 ( , 3 )
console.log(data.lastIndexOf(4)); // -1 ( )
reduce
array.reduce(callback[,initialValue])
1.callback 함수는 4개의 매개 변수를 받아들인다: 이전 값, 현재 값, 색인 값과 그룹 자체.initialValue 매개 변수는 초기 값을 나타내는 옵션입니다.지정하면 처음에 사용했던previous 값으로 간주합니다.만약 부족하다면, 그룹의 첫 번째 요소를previous의 초기 값으로 사용하고,current는 뒤로 한 자리를 차지하며, initialValue 값이 있는 것보다 한 번 교체되지 않습니다.
var sum = [1, 2, 3, 4].reduce(function (previous, current, index, array) {
return previous + current;
}, 1);
console.log(sum); // 11
2.reduce가 있으면 우리는 2차원 그룹의 편평화화를 쉽게 실현할 수 있다
var matrix = [
[1, 2],
[3, 4],
[5, 6]
];
//
var flatten = matrix.reduce(function (previous, current) {
return previous.concat(current);
});
console.log(flatten); // [1, 2, 3, 4, 5, 6]
reduceRight
실현상의 차이는 ReduceRight가 수조의 끝에서부터 이루어진다는 데 있다.
var flatten = matrix.reduce(function (previous, current) {
return previous.concat(current);
});
console.log(flatten); // [1, 2, 3, 4, 5, 6]
//reduceRight reduceRight 。
var data = [1, 2, 3, 4];
var specialDiff = data.reduceRight(function (previous, current, index) {
if (index == 0) {
return previous + current;
}
return previous - current;
});
console.log(specialDiff); // 0
원작 테스트 데모 - 컨트롤러 테스트 열기
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.