Home > Web Front-end > JS Tutorial > What are the new methods of ECMA5 arrays and forEach() imitation implementation_javascript skills

What are the new methods of ECMA5 arrays and forEach() imitation implementation_javascript skills

WBOY
Release: 2016-05-16 15:33:56
Original
1552 people have browsed it

The following is a code example to introduce to you the imitation implementation of the new method forEach() of ECMA5 arrays. The specific code is as follows,

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");
     });
Copy after login

It is worth noting:

1. Use of callback function

2.The meaning of defineProperty and defineProperties functions

Both of these two functions can define the four major characteristics of object properties-value, writability, enumerability, and configurability

I still have some time to introduce to you several new methods of arrays in ECMA5 as follows:

When I was doing exercises today, I came across fitter(); I have seen these new methods of arrays before, but they have never been used in actual combat, so I will review them today;

forEaach()

This method traverses an array from beginning to end, and then calls the specified function for each element in the array. This function serves as the first parameter of foreach. The called function can have three parameters, which are the current array element, the index of the current element, and the array being traversed. If there is only one parameter, then this parameter is the current array element.

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() ;
Copy after login

The map() method passes each element of the called array to the specified function and returns an array (exactly the same format as the calling array), which contains the return value of the function. Note: It must have a return value and not change the array it is called from.

var a = [1,2,3];
b = a.map(function(x) { return x * x; });
filter() 
Copy after login

The return value of this function is a subset of the calling function, because the functional expression passed to it is used to make logical judgments. If it is true, the current value is pushed into the subset array to be returned.

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() ;
Copy after login

The parameters of these two functions are both a judgment function, which judges the array elements, and the return value is true or false;

In every()Only when all array elements call the judgment function and return true, the return value is true; somewhat similar to &;

In some(), as long as one array element calls the judgment function to be true, it will return true.

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template