>  기사  >  웹 프론트엔드  >  ECMA5 배열 및 forEach() 모방 구현_javascript 기술의 새로운 방법은 무엇입니까?

ECMA5 배열 및 forEach() 모방 구현_javascript 기술의 새로운 방법은 무엇입니까?

WBOY
WBOY원래의
2016-05-16 15:33:561525검색

다음은 ECMA5 배열의 새로운 메소드 forEach()의 모방 구현을 소개하는 코드 예제입니다.

var o = {
       forEach: function (callback) {
         // alert(this.length);
         for (var i = , len = this.length; i < len; i++) {
           callback && callback(this[i], i, this);
         }
       },
       get length(){
         var sum=;
         for(var n in this) {
           sum+=;
         }
         return sum;
       }
     };
     Object.defineProperty(o,"length",{enumerable:false});
     Object.defineProperty(o,"forEach",{enumerable:false});
     o[] = ;
     o[] = ;
     o[] = ;
     o.forEach(function(v,i,arr){
       arr[i]=v+;
       console.log(arr[i]+"callback");
     });

주목할 만한 점:

1. 콜백 기능 사용

2.defineProperty와 DefineProperties 함수의 의미

이 두 함수는 모두 객체 속성의 네 가지 주요 특성인 값, 쓰기 가능성, 열거 가능성 및 구성 가능성을 정의할 수 있습니다

아직 ECMA5의 몇 가지 새로운 배열 방법을 다음과 같이 소개할 시간이 있습니다.

오늘 연습을 하다가 fitter()를 발견했습니다. 이전에 이러한 새로운 배열 방법을 본 적이 있지만 실제 전투에서는 사용한 적이 없으므로 오늘 리뷰하겠습니다.

forEaach()

이 메서드는 배열을 처음부터 끝까지 순회한 다음 배열의 각 요소에 대해 지정된 함수를 호출합니다. 이 함수는 foreach의 첫 번째 매개변수 역할을 합니다. 호출된 함수에는 현재 배열 요소, 현재 요소의 인덱스 및 순회 중인 배열의 세 가지 매개변수가 있을 수 있습니다. 매개변수가 하나만 있는 경우 이 매개변수는 현재 배열 요소입니다.

var data = [1,2,3,4,5] ;
// 计算数组的和
var sum = 0 ; 
data.forEach(function(value){sum += value; }); // 这里的value 分别代指 data[0~4];
console.log( sum ) // 15
// 每个数组元素自加1
data.forEach(function(v, i, a){ a[i] = v + 1; }) // v 分别代指 data[0~4]; a 代指data;
map() ;

map() 메서드 는 호출된 배열의 각 요소를 지정된 함수에 전달하고 함수의 반환 값이 포함된 배열(호출 배열과 정확히 동일한 형식)을 반환합니다. : 반환 값이 있어야 하며 호출된 배열을 변경해서는 안 됩니다.

var a = [1,2,3];
b = a.map(function(x) { return x * x; });
filter() 
var getNum = function (a, b, k) {
return a.filter(function (v) {return b.indexOf(v) > -1;})[k-1];
}
var A = [3,4,5,6,7,8,9];
var B = [12,10,8,6];
console.log(getNum(A, B, 1))
console.log(getNum(A, B, 2));
every() some() ;
이 두 함수의 매개 변수는 모두 배열 요소를 판단하는 판단 함수이며 반환 값은 true 또는 false입니다.

every()모든 배열 요소가 판단 함수를 호출하고 true를 반환하는 경우에만 반환 값이 &;와 다소 유사합니다.

some()에서는 하나의 배열 요소가 판단 함수를 true로 호출하는 한 true를 반환합니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.