[원]javascript 필기의 Array 방법 for Each &map &filter &some &every &reduce &reduce Right
forEach
forEach는 ES5의 Array 방법 중 가장 자주 사용되는 것으로, 반복, 순환 출력이며, 반드시 필요한 리셋 함수를 매개 변수로 받아들인다.
let arr1 = [1,2,3,4]
arr1.forEach((item)=>{
console.info(item);
})
//1
//2
//3
//4
전통적인 for 순환과 같다.
let arr1 = [1,2,3,4]
for(let i = 1;i){
console.info(arr1[i])
}
//1
//2
//3
//4
for 순환에 비해forEach는 매우 간결하다.forEach 방법의 리셋 함수는 3개의 매개 변수를 지원하고 첫 번째는 옮겨다니는 그룹 내용이다.두 번째는 대응하는 그룹 인덱스, 세 번째는 그룹 자체다.
[].forEach((value, index, array)=> {
});
예를 들면 다음과 같습니다.
let array1 = [1, 2, 3, 4]
let array2 =[];
array1.forEach( (item, index, array) => {
console.info(array1 === array);//(4)true
array2[index] = item * item;
});
console.info(array2);// [1, 4, 9, 16]
forEach는 리셋 함수를 매개 변수로 받아들이는 것 외에 선택할 수 있는 상하문 매개 변수를 받아들인다. (리셋 함수 안의 4
this
지향 변경)array.forEach(callback,[thisObject])
예,obj.consoleFn이 호출된 후,this는 obj를 가리켰습니다.
let obj = {
nameArr: [" ", " ", " "," "],
isCat: function (name) {
return /^ /.test(name);
},
consoleFn: function (name) {
if (this.isCat(name)) {
console.info(` ${name}`);
} else {
console.info(` ${name}`);
}
}
}
obj.nameArr.forEach(obj.consoleFn,obj);
//
//
//
//
다음 예obj.consoleFn은forEach의 매개 변수로 호출되었습니다. 이때forEach의 상하문 매개 변수를 지정하지 않으면 obj입니다.consoleFn에서this가 window를 가리키면 페이지가 잘못됩니다.여기서this에 대한 지식을 얻으려면 이 글인 을 보십시오.
다음 코드는 window 아래에 isCat 함수가 없기 때문에 오류가 발생할 수 있습니다.
let obj = {
nameArr: [" ", " ", " "," "],
isCat: function (name) {
return /^ /.test(name);
},
consoleFn: function (name) {
if (this.isCat(name)) {
console.info(` ${name}`);
} else {
console.info(` ${name}`);
}
}
}
obj.nameArr.forEach(obj.consoleFn);// Uncaught TypeError: this.isCat is not a function
forEach는 빈 요소를 반복하지 않습니다.
let array3 = [1,,3]
console.info(array3.length); //3
array3.forEach((item)=>{
console.info(item);
});
//1
//3
map
map은 ES5의 Array 방법 중 가장 기본적인 것으로 그 기본적인 용법은forEach와 유사하고 반복적이며 서로 다른 최종 출력의 새로운 그룹입니다
array.map(callback,[thisObject]);
콜백의 매개 변수는 forEach와 같습니다.
array.map(function(value, index, array) {
//callback return
});
map 함수는 원수 그룹을 새로운 수로 비추는 것입니다
let array1 = [1, 2, 3, 4]
let array2 = array1.map( (item, index, array) => {
return item * item
});
console.info(array2); // [1,4,9,16]
filter
필터는 필터, 필터를 의미합니다.지수 그룹이 Filter를 통과한 후 필터된 새 그룹을 되돌려줍니다.
array.filter(callback,[thisObject]);
filter의callback 함수는 브리 값true나false를 되돌려야 합니다. (되돌림 값이 약하면 ==true/false와 같습니다.) 콜백은return 값이 필요합니다.
예를 들어 다음 그룹에서array4의 두 그룹이 0과false로 되돌아오면 필터가 됩니다.
const array4 = [0, false, 2, 3];
const array5 = array4.filter(function(item) {
return item;
});
console.info(array5); // [2, 3]
다시 한 번 예를 들면, 수조 중의 돼지를 여과해라.
const array6 = [" ", " ", " ", " "];
const array7 = array6.filter(function(item) {
if(item == ' ') return false
else return item
});
console.info(array7); // [" ", " ", " "]
some
some는'일부'를 가리키며,'일부'가 조건에 맞는지 여부를 가리킨다.사용법은 다음과 같습니다.
array.some(callback,[thisObject]);
some는 최소한 1개의 값을 요구하여 콜백이true로 되돌아오게 하면 된다. 다음과 같은 예:
const arrFraction = [60, 80, 95, 70];
const passFraction = 90;// 90
const result = arrFraction.some((item)=>{return item > passFraction
})
if(result){
console.info(" ");
}
every
every는 '모든 항목' 을 가리키며, 모든 것이 조건에 부합되어야 하며, 한 항목이 부합되지 않으면false로 되돌아오는 것을 가리킨다.사용법은 다음과 같습니다.
const arrFraction = [91, 93, 95, 89];
const passFraction = 90;// 90
const result = arrFraction.every((item)=>{
return item > passFraction
})
if(result){
console.info(" ");
}else{
console.info(" ");
}
reduce
reduce는 '축소' 를 의미하며, 하나의 함수를 누적기로 받아들여, 그룹의 모든 값을 왼쪽에서 오른쪽으로 옮겨다니며, 최종적으로 하나의 값으로 계산한다.사용법은 다음과 같습니다.
array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
//total 。 ,
//currentValue 。
//currentIndex 。
//arr 。 。
//initialValue 。 , total
예를 들어, 수조 항목의 합을 구하면, 초기값은 0이고, 아래 코드는 0부터 6까지 추가됩니다.
const arr = [1,2,3,4,5,6];
let sum = arr.reduce(function (total, currentValue) {
return total + currentValue;
},0);
console.info(sum)
예를 들어 수조의 최소값을 구하다
const arr = [20,20,35,4,15,6];
let min= arr.reduce(function (prev, cur) {
return Math.min(prev,cur);
});
console.info(min)
reduceRight
reduceRight () 방법의 기능은 Reduce 기능과 같습니다. 다른 것은 옮겨다니는 순서와 반대로, 그룹의 마지막 항목부터 시작하여 첫 번째 항목까지 옮겨다니는 것입니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.