Este exemplo resume as técnicas operacionais comuns para matrizes JavaScript. Compartilhe para sua referência. Os detalhes são os seguintes:
Prefácio
Acredito que todo mundo está acostumado a usar operações relacionadas a matrizes comumente usadas em bibliotecas de classes como jQuery ou sublinhado, como $ .isarray, _.ansome, _.Find e outros métodos. Aqui não há nada mais do que um pouco mais de embalagens para operações nativas de matriz JS.
Aqui, resumiremos principalmente as APIs comuns para operações de matriz JavaScript. Acredito que será muito útil para todos resolverem os problemas do programa.
1. Natureza
Uma matriz no JavaScript é um objeto especial, e o índice usado para representar um deslocamento é uma propriedade do objeto, e o índice pode ser um número inteiro. No entanto, esses índices numéricos são convertidos internamente em tipo de string, porque o nome do atributo no objeto JavaScript deve ser uma string.
2. Operação
1 determine o tipo de matriz
Copie o código da seguinte forma: var Array0 = []; // literal
var array1 = new Array (); // construtor
// Nota: o método Array.isarray não é suportado no IE6/7/8
alerta (Array.esArray (Array0));
// Considere a compatibilidade, pode ser usado
alerta (instância do array1 da matriz);
// ou
alert (object.prototype.toString.Call (Array1) === '[Array do objeto]');
2 Array e String
Muito simples: converta de uma matriz em uma string, use junção; Converta de uma string em uma matriz, use divisão.
Copie o código da seguinte
console.log (['Hello', 'World']. Join (',')); // Olá, mundo
// Split - converta de string para matriz, usando divisão
console.log ('Hello World'.split (' ')); // ["Hello", "World"]
3 Encontre elementos
Acredito que todos costumam usar o tipo de string, mas raramente sabe que o índice de uma matriz também pode ser usado para encontrar elementos.
Copie o código da seguinte forma: // indexof - Encontre elementos
console.log (['abc', 'bcd', 'cde']. indexof ('bcd')); // 1
//
var objinArray = [
{
Nome: 'rei',
Pass: '123'
},
{
Nome: 'King1',
Pass: '234'
}
];
console.log (objinArray.indexOF ({
Nome: 'rei',
Pass: '123'
})); // -1
var elementoFarray = objinArray [0];
console.log (objinArray.indexof (elementoFarray)); // 0
A partir do exposto, podemos ver que, para uma matriz que contém objetos, o método IndexOF não obtém os resultados de pesquisa correspondentes através da comparação profunda, mas compara apenas as referências aos elementos correspondentes.
4 conexões de matriz
Ao usar o Concat, esteja ciente de que uma nova matriz será gerada após o uso da CONCAT.
A cópia do código é a seguinte: var Array1 = [1, 2, 3];
var Array2 = [4, 5, 6];
var Array3 = Array1.Concat (Array2); // Depois de implementar a conexão da matriz, uma nova matriz será criada
console.log (Array3);
5 categorias de operações de lista
Para adicionar elementos, você pode usar o push e o aprimoramento, respectivamente, e para remover elementos, você pode usar o POP e o turno, respectivamente.
Copie o código da seguinte forma: // push/pop/shift/não
var array = [2, 3, 4, 5];
// Adicione ao final da matriz
Array.push (6);
console.log (Array); // [2, 3, 4, 5, 6]
// Adicione ao cabeçalho da matriz
Array.unshift (1);
console.log (Array); // [1, 2, 3, 4, 5, 6]
// Remova o último elemento
var elementofpop = array.pop ();
console.log (elementofpop); // 6
console.log (Array); // [1, 2, 3, 4, 5]
// Remova o primeiro elemento
var elementofshift = array.shift ();
console.log (elementofshift); // 1
console.log (Array); // [2, 3, 4, 5]
6 Método de emenda
Dois usos principais:
① Adicione e exclua elementos do meio da matriz
② Obtenha uma nova matriz da matriz original
Obviamente, os dois usos são sintetizados em um gás. Alguns cenários se concentram no propósito um, enquanto outros se concentram no propósito dois.
Adicione e exclua elementos da posição do meio da matriz. O método Splice adiciona elementos à matriz. Os seguintes parâmetros são necessários.
① Start Index (isto é, onde você deseja começar a adicionar elementos)
② O número de elementos que precisam ser excluídos ou o número de elementos extraídos (o parâmetro é definido como 0 ao adicionar elementos)
③ Elementos que você deseja adicionar à matriz
A cópia do código é a seguinte: var nums = [1, 2, 3, 7, 8, 9];
Nums.Splice (3, 0, 4, 5, 6);
console.log (nums); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
// então faça a operação de exclusão ou extraia uma nova matriz
var newnums = nums.splice (3, 4);
console.log (nums); // [1, 2, 3, 8, 9]
console.log (newnums); // [4, 5, 6, 7]
7 classificar
A principal introdução aos métodos reversos e classificados. A inversão da matriz usa reverso, o método de classificação pode ser usado não apenas para classificação simples, mas também para classificação complexa.
Copie o código da seguinte forma:/ Inverta a matriz
var Array = [1, 2, 3, 4, 5];
Array.Reverse ();
console.log (Array); // [5, 4, 3, 2, 1]
Primeiro, classificamos a variedade de elementos de string
var ArrayofNames = ["David", "Mike", "Cynthia", "Clayton", "Bryan", "Raymond"];
ArrayofNames.sort ();
console.log (ArrayOfNames); // ["Bryan", "Clayton", "Cynthia", "David", "Mike", "Raymond"]
Nós classificamos matrizes de elementos numéricos
Copie o código da seguinte forma:/ Se o elemento da matriz for do tipo numérico, o resultado do método stor () não será satisfatório.
var nums = [3, 1, 2, 100, 4, 200];
nums.Sort ();
console.log (nums); // [1, 100, 2, 200, 3, 4]
O método de classificação classifica os elementos na ordem do dicionário, por isso assume que os elementos são todos os tipos de string; portanto, mesmo que os elementos sejam tipos numéricos, eles são considerados tipos de string. No momento, você pode passar uma função de comparação de tamanho ao chamar o método. Ao classificar, o método Sort () comparará os tamanhos de dois elementos na matriz com base na função, determinando assim a ordem de toda a matriz.
Copie o código da seguinte forma: var compare = function (num1, num2) {
retornar num1> num2;
};
nums.Sort (compare);
console.log (nums); // [1, 2, 3, 4, 100, 200]
var objinArray = [
{
Nome: 'rei',
passe: '123',
ÍNDICE: 2
},
{
Nome: 'King1',
Pass: '234',
ÍNDICE: 1
}
];
// Ordem ascendente de acordo com o índice para elementos de objeto na matriz
var compare = function (o1, o2) {
retornar o1.Index> o2.Index;
};
objinArray.sort (compare);
console.log (objinArray [0] .Index <objinarray [1] .Index); // verdadeiro
8 Método do iterador
Inclui principalmente foreach e cada, alguns e mapa, filtrar
Acredito que todos possam fazer isso para e cada um, e apresentarei principalmente os outros quatro métodos.
O método todo método aceita uma função com um valor de retorno booleano, usado para cada elemento na matriz. Se a função retornar TRUE para todos os elementos, o método retornará true.
A cópia do código é a seguinte: var nums = [2, 4, 6, 8];
// Método iterador que não gera novas matrizes
var iseven = function (num) {
retornar num % 2 === 0;
};
// Se todos forem números uniformes, retorne verdadeiro
console.log (nums.aue (iSeven)); // verdadeiro
Algum método também aceita uma função com um valor de retorno booleano. Enquanto houver um elemento que faça com que a função retorne true, o método retorna true.
var iseven = function (num) {
retornar num % 2 === 0;
};
var nums1 = [1, 2, 3, 4];
console.log (nums1.some (iSeven)); // verdadeiro
Os métodos de mapa e filtro podem produzir novas matrizes. A nova matriz retornada pelo mapa é o resultado da aplicação de uma função ao elemento original. como:
Copie o código da seguinte forma: var up = function (grau) {
Grau de retorno += 5;
}
Var Gestes = [72, 65, 81, 92, 85];
var newGrades = graus.ma
O método do filtro é muito semelhante ao método todos os métodos, passando em uma função com um valor de retorno booleano. Ao contrário do método todo (), quando a função é aplicada a todos os elementos da matriz e o resultado é verdadeiro, o método não retorna verdadeiro, mas retorna uma nova matriz que contém os elementos cujo resultado é verdadeiro após a aplicação da função.
Copie o código da seguinte forma: var iseven = function (num) {
retornar num % 2 === 0;
};
var isodd = function (num) {
retornar num % 2! == 0;
};
var nums = [];
for (var i = 0; i <20; i ++) {
nums [i] = i + 1;
}
Var Evens = Nums.Filter (ISeven);
console.log (Evens); // [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
var Odds = Nums.Filter (ISODD);
console.log (odds); // [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
3. Resumo
O exposto acima também tem o problema de que alguns métodos não são suportados em navegadores de baixo nível e outros métodos precisam ser usados para implementação compatível.
Esses são métodos comuns que podem não ser fáceis para todos pensarem. Todos podem prestar mais atenção.
Espero que este artigo seja útil para a programação JavaScript de todos.