JS 배열 이 원래 배열 에 미 친 영향 및 반환 값 을 전면적으로 분석 합 니 다.
본 고 는 주로 Js 에서 옮 겨 다 니 는 방법 이 원래 배열 에 미 친 영향 과 방법 에 대한 반환 치 를 테스트 하 는 것 이다.
테스트 에 사용 할 코드 주소 github. com / fanxuewen / e...
두루
1. map 와 forEach
원 배열 에 미 친 영향 및 반환 값 검증
let originalArr=[1,2,3,4,5,6,7,8,9,10];
console.log('------------map---------------');
let arrMap= originalArr.map(item=>{
return item*2;
})
console.log('original',originalArr);
console.log('result',arrMap);
console.log('------------forEach---------------');
let arrForEach=originalArr.forEach(item=>{
return item*2;
})
console.log('original',originalArr);
console.log('result',arrForEach);
결과: map 와 foreach 는 원래 배열 을 바 꾸 지 않 습 니 다. map 는 새 배열 로 돌아 갑 니 다. foreach 는 반환 값 이 없습니다.
실행 효율 검증
let originalArr=[];
for(let i=0;i<1000000;i++){
originalArr.push(i);
}
console.time('forEach')
originalArr.forEach(item=>{
return item*2;
})
console.timeEnd('forEach');
console.time('map')
originalArr.map(item=>{
return item*2;
})
console.timeEnd('map');
결과: foreach 의 실행 효율 이 map 보다 약간 높 습 니 다.
2. some 와 every 및 filter
원 배열 에 미 친 영향 및 반환 값 검증
let originalArr=[1,2,3,4,5,6,7,8,9,10];
console.log('------------filter---------------');
let arrFilter= originalArr.filter(item=>{
return item>2;
});
console.log('original',originalArr);
console.log('result',arrFilter);
console.log('------------some---------------');
let arrSome=originalArr.some(item=>{
return item>2;
})
console.log('original',originalArr);
console.log('result',arrSome);
console.log('------------every---------------');
let arrEvery=originalArr.every(item=>{
return item>2;
})
console.log('original',originalArr);
console.log('result',arrEvery);
결과: 세 자 는 원래 의 배열 을 바 꾸 지 않 고 filter 는 조건 을 만족 시 키 는 새로운 배열 로 돌아 갑 니 다. some 와 every 는 bool 값 으로 돌아 갑 니 다. some 는 y 가 조건 을 만족 시 키 는 항목 만 있 으 면 True 로 돌아 갑 니 다. every 는 판정 조건 을 모두 만족 시 켜 야 true 로 돌아 갑 니 다.
순환 을 중단 할 수 있 는 지 검증 합 니 다.
let originalArr=[1,2,3];
console.log('------------filter---------------');
let arrFilter= originalArr.filter((item,index)=>{
console.log(item);
if(index==1){
return false;
}
return true;
});
console.log('original',originalArr);
console.log('result',arrFilter);
console.log('------------some---------------');
let arrSome=originalArr.some((item,index)=>{
console.log(item);
if(index==1){
return false;
}
return true;
})
console.log('original',originalArr);
console.log('result',arrSome);
console.log('------------every---------------');
let arrEvery=originalArr.every((item,index)=>{
console.log(item);
if(index==1){
return false;
}
return true;
})
console.log('original',originalArr);
console.log('result',arrEvery);
결과: filter 는 순환 을 미리 종료 하지 않 습 니 다. return 이 false 일 때 해당 항목 은 새로 돌아 온 배열 에 나타 나 지 않 습 니 다. some 과 every 는 순환 을 미리 종료 할 수 있 습 니 다. some 가 return 이 true 일 때 즉시 순환 을 종료 합 니 다. every 가 return 이 false 일 때 즉시 종료 합 니 다.
이상 의 테스트 를 통 해 알 수 있 듯 이 1. 모든 스 트 리밍 방법 은 원 배열 2. map 와 filter 에 영향 을 주지 않 고 새로운 배열 3. foreach 로 돌아 갑 니 다. 반환 값 4. some 와 every 가 bool 값 을 되 돌려 주지 않 고 순환 을 미리 중단 할 수 있 습 니 다.
다음으로 전송:https://juejin.im/post/5caec65e5188251ae4157497
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.