métodos de passagem JS matrizes e objetos resumo

métodos de travessia em JavaScript, matrizes e objetos resumo

Laço através do processo de escrita é uma operação muito frequente, JavaScript fornece um número de métodos para conseguir.

 

Este artigo irá resumir os métodos leque de atravessamento e objetos, o novato pode jogar uma série de conhecimentos adquiridos através deste artigo.

 

travessia matriz

 

Método a: para o laço

 

O laço for é o mais utilizado, mas também para otimizar o desempenho do melhor percurso tipo.

 

var arr = ["a", "b", "c"];
for (var i = 0; i < arr.length; i++) { console.log(arr[i]) } // a b c 

 

O mesmo tipo de um ciclo convencional, e ao mesmo tempo também laços do / while loop.

 

A diferença entre eles é que, para o laço saber com antecedência o número de ciclos, enquanto que os ciclos não sabe o número de ciclos, do / while será pelo menos o número.

 

Método dois: for-de travessia

 

para-de ES6 é a nova sintaxe. valor de passagem directamente, em vez de um índice de matriz (ou atributo do objecto).

 

var arr = ["a", "b", "c"];
for (let item of arr) { console.log(item); } // a b c 

 

Na verdade, para-de declaração só pode percorrer um array de objetos.

 

Você também pode Matriz iterativo, Mapa, Set, String e outros objetos.

 

// 遍历String
let str = "Hello";
for (let value of str) { console.log(value) } // H e l l o // 遍历Map let iterable = new Map([["a", 1], ["b", 2], ["c", 3]]); for (let entry of iterable) { console.log(entry); } // ["a", 1] // ["b", 2] // ["c", 3] for (let [key, value] of iterable) { console.log(value); } // 1 // 2 // 3 

 

para-de obras, solicitando um loop iteração opor-se ao objecto, e, em seguida, devolve o valor obtido pela seguinte () objeto método iteração.

 

Uma matriz de embutidos  @@iterator, @@iteratornão a iteração, mas a função retorna um objeto iteração.

 

var arr = ["a", "b","c"];
var it = arr[Symbol.iterator](); console.log(it.next()); // { value: 'a', done: false } console.log(it.next()); // { value: 'b', done: false } console.log(it.next()); // { value: 'c', done: false } console.log(it.next()); // { value: undefined, done: true } 

 

O código acima, o valor representa o valor atual da travessia, feito é um valor booleano que indica se o valor também pode travessia.

 

Deve-se notar que os objetos ordinários não são construídos @@iterator, não pode ser usado para-de travessia.

 

A razão para isso é muito complexa, em termos simples, é para evitar o impacto do tipo futuro objeto.

 

No entanto, podemos Object.defineProperty(...)definir para o objeto @@iterator.

 

Detalhes podem ser [aqui entendido] ( https://github.com/getify/You-Dont-Know-JS/blob/1ed-zh-CN/this  % objecto 26 é protótipos / ch3.md).

 

Método três: Array Método

 

A fim de se adaptar a diferentes formas de atravessamento, matrizes de JavaScript construiu uma série de métodos.

 

Por exemplo, mais comumente usado forEach()método, para escrever, você pode tornar o código mais conciso.

 

var arr = ["a", "b", "c"];
arr.forEach((index, item) => { console.log(index, item) }) // a 0 // b 1 // c 2 

 

map()método

 

var arr = [1, 2, 3];
var newArr = arr.map(item => { return item * 2; }); console.log(newArr); // [2, 4, 6] 

 

filter()método

 

var arr = [1, 2, 3];
var newArr = arr.filter(item => { return item > 1; }); console.log(newArr); // [2, 3] 

 

reduce()ES5 novo método foi projetado para operação abaixo concepção de tal acumulação.

 

Ele realmente pode fazer do que ser rico, o papel simplesmente introduz os detalhes básicos de uso pode ver este artigo .

 

var arr = [1, 2, 3];
var sum = arr.reduce((pre, cur) => { return pre + cur; }); console.log(sum); // 6 

 

every()Um método para detectar se todos os elementos da matriz que satisfazem os critérios especificados.

 

É geralmente os seguintes some()métodos em conjunto entendimento.

 

var arr = [1, 2, 3];
var bool = arr.every(item => { return item < 5; }); console.log(bool); // true 

 

some()Um método para detectar a presença ou ausência dos elementos de matriz que satisfazem os critérios especificados.

 

O exemplo seguinte é detectar a presença ou ausência do número Tipo de elemento de matriz.

 

var arr = ["a", 1, "b"];
var bool = arr.some(item => { return typeof item === "number"; }); console.log(bool); // true 

 

métodos de travessia objecto

 

Atravessar o objeto em relação a alguns problemas.

 

Existem duas maneiras para atravessar o objecto pode ser alcançado, uma utilização directa para-em malha; Noutra forma de realizao, o objecto é convertido em uma matriz, e em seguida atravessada.

 

Método Um: para-em malha

 

para-em concebido para navegar no objecto podem ser enumerados atributo, os atributos, incluindo a cadeia protótipo protótipo, de modo que o desempenho será relativamente pobre.

 

O que é propriedade enumeráveis ?

 

Como pode ser visto a partir do nome, é a propriedade do objecto aparece na iteração (enumeração), tal como para-em malha.

 

var obj = { a: 2, b: 4, c: 6 }; for (let key in obj) { console.log(key); } // a b c 

 

Método dois: Object.keys () e Object.getOwnPropertyNames ()

 

Object.key()Ele retorna um array contendo todas as propriedades enumeráveis; Object.getOwnPropertyNames()também retorna uma matriz que contém todos os elementos, independentemente de haver ou não enumeráveis.

 

Deve-se notar que tanto só olha para propriedades personalizadas do objeto.

 

var obj = { a: 2, b: 4, c: 6 }; // Object.keys() Object.keys(obj).forEach(key => { console.log(key); }) // a b c // Object.getOwnPrepertyNames() Object.getOwnPropertyNames(obj).forEach(key => { console.log(key); }) // a b c 

 

Além disso, também podem Reflect.ownKeys(obj)ser métodos de passagem.

 

Ele retorna um array contendo objetos atributos personalizados, se o nome do atributo é símbolo ou corda, ou não enumeráveis.

 

Devido ao uso de pequenas, aqui olhar para.

 

Finalmente, estamos juntos diferentes objetos de passagem método de características.

 

caminho Encontrar as propriedades cadeia de protótipos Encontrar propriedades personalizadas Encontre um propriedades não-enumeráveis
for-in
Object.keys(..)
Object.getOwnpropertyNames(..)

 

Meu filho Binbin

Acho que você gosta

Origin www.cnblogs.com/Leo_wl/p/12547920.html
Recomendado
Clasificación