Os tipos de matriz em JavaScript são muito diferentes daqueles em outros idiomas. Cada item em JavaScript pode conter qualquer tipo de dados. Além disso, o tamanho das matrizes JavaScript pode ser ajustado dinamicamente e pode crescer automaticamente à medida que os dados são adicionados para acomodar novos dados .
Existem duas formas básicas de criação de uma matriz.
1. Construtor de Agrreia
var cities = new Array ();
Se você souber o número de itens a serem salvos com antecedência, também poderá passar esse número para o construtor, que se tornará automaticamente o valor do atributo de comprimento.
var cidades = nova matriz (3);
Você também pode passar os itens que devem ser incluídos na matriz para o construtor da matriz.
var cidades = novo array ("Xangai", "Pequim", "Shenzhen");O novo operador pode ser omitido ao criar uma matriz:
var cidades = matriz (3); // Crie uma matriz contendo 3 elementos
2. Representação literal da matriz
A notação literal da matriz é representada por um par de colchetes que contêm itens de matriz, separados por vírgulas, como segue:
var cidades = ["shanghai", "Pequim", "Shenzhen"]; var cities = []; // Crie uma corda vazia
Ao ler e definir o valor de uma matriz, use suportes quadrados e forneça um índice numérico com base em 0 (com base em 0 é a contagem de 0, o primeiro termo é 0, o segundo termo é 1 e assim por diante), como mostrado abaixo:
var cidades = ["shanghai", "Pequim", "Shenzhen"]; alerta (cidades [0]); // "shanghai" cidades [1] = "Hongkong"; // Modifique o segundo item "Pequim" para "Hong Kong" cidades [3] = "Taiwan" // Adicione um novo item
O número de itens na matriz é salvo na propriedade Length e não é somente leitura . Portanto, definindo a propriedade Length, você pode remover itens do final da matriz ou adicionar novos itens à matriz.
var cidades = ["shanghai", "Pequim", "shenzhen"]; cidades.length = 2; alerta (cidades [2]); // indefinido
Usando esta propriedade de comprimento, você pode adicionar novos itens no final da matriz:
var cidades = ["shanghai", "Pequim", "Shenzhen"]; cidades [cidades.length] = "hongkong";
1. Detectar a matriz
O ECMAScript5 adicionou o método Array.isArray (), que é para determinar se um valor é uma matriz, independentemente de qual ambiente de execução global é criado. O uso é o seguinte:
if (Array.esArray (value)) {// Execute algumas operações na matriz}2. Método de conversão
Todos os objetos têm métodos tolocalestring (), tostring () e valueof (). O método ToString () da matriz é chamado ToString () para retornar uma corda separada por vírgula emendada a partir do formulário da string de cada valor na matriz. Por exemplo:
var cidades = ["shanghai", "Pequim", "shenzhen"]; alert (cities.toString ()); // Shanghai, Pequim, Shenzhenert (Cities.valueof ()); // Shanghai, Pequim, Shenzhenert (cidades); // Shanghai, Pequim, Shenzhenert (cidades); // Shanghai, Pequim, Shenzhen
NOTA: Como o alert () precisa receber parâmetros de string, ele chamará o método ToString () em segundo plano, para obter o mesmo resultado de chamar o método ToString () diretamente.
Além disso, o método tolocalestring () geralmente retorna o mesmo valor que tostring () e valueof (). A diferença é que, para obter o valor de cada item, o método tolocalestring () de cada item é chamado , em vez do método tostring (). Por exemplo:
var p1 = {tolocalestring: function () {return "p1 tolocalestring"; }, toString: function () {return "p1 tostring"; }}; var p2 = {tolocalestring: function () {return "p2 tolocalestring"; }, tostring: function () {return "p2 tostring"; }}; var p = [p1, p2]; alerta (P); alerta (p.toString ()); alerta (p.tolocalestring ());O resultado mostra que o método de tostragem é chamado na primeira e na segunda linhas, e o método Tolocalestring é chamado na terceira linha.
Os métodos tolocalestring (), tostring () e valueof () herdados pela matriz retornarão os itens da matriz na forma de seqüências de seqüências separadas por vírgula por padrão. Com o método junção (), você pode usar caracteres diferentes para dividir a string e retornar a string que contém todos os itens da matriz.
var cidades = ["shanghai", "Pequim", "Shenzhen"]; alerta (cidades); // Shanghai, Pequim, Shenzhenert (Cities.join (",")); // Shanghai, Pequim, Shenzhenert (Cities.join ("|")); // shanghai | beijing | shenzhen3. Método de pilha
Uma pilha é a última estrutura de dados da primeira saída (LIFO), e a inserção e remoção de itens de dados na pilha só podem ocorrer na parte superior da pilha. As matrizes JavaScript fornecem métodos push () e pop () para implementar o comportamento do tipo pilha.
método push ()
Você pode pegar qualquer número de parâmetros, adicioná -los ao final da matriz e modificar o comprimento da matriz.
var params = new Array (); var count = params.push ("a", "b"); alert (params); // A, Balert (contagem); // 2A partir do exemplo acima, podemos ver que o número de termos inseridos retornados pelo método push ().
Método pop ()
Remova o último item do final da matriz, reduza o comprimento da matriz e retorne o item removido.
var params = new Array (); var count = params.push ("a", "b", "c"); var item = params.pop (); alert (item); // calEndart (params.length); // 24. Método da fila
A regra de acesso para a estrutura de dados da fila é a primeira a primeira saída (FIFO), ou seja, os itens são adicionados a partir do final da fila e os itens são removidos da extremidade frontal da fila.
Método Shift ()
O método Shift () é fornecido no JavaScript, que remove o primeiro item na matriz e retorna o item e, ao mesmo tempo, modifica o atributo de comprimento da matriz.
var params = new Array (); var count = params.push ("a", "b", "c"); var item = params.shift (); // Obtenha o primeiro alerta de item (item); // aalert (params.length); // 2Método não ()
O JavaScript também fornece o método Netfift (), que pode adicionar qualquer item à extremidade frontal da matriz e retornar o comprimento da nova matriz.
var params = new Array (); var count1 = params.unshift ("a"); alerta (contagem1); // 1Art (params); // AVAR contagem2 = params.unShift ("b"); alert (contagem2); // 2Alert (params); // b, Avar count3 = params.unshift ("c", "d"); alert (params); // c, d, b, aObservou -se que, se houver vários termos em NEMNAT () por vez, ele inserirá esses termos na matriz em ordem, ou seja, o primeiro parâmetro será inserido na frente. Como no exemplo acima, "A" é inserido pela primeira vez, "B" é inserido pela segunda vez, e há vários termos na terceira vez, mas a ordem é C na frente e D na parte traseira.
5. Método de reordenação
Existem dois métodos usados diretamente para reordenar na matriz.
método reverso ()
O método reverso () inverte a ordem dos itens da matriz.
var valores = [1,2,3,4,5]; valores.Reverse (); alerta (valores); // 5,4,3,2,1
Método Sort ()
Por padrão, o método Sort () organiza itens de matriz em ordem crescente. Para alcançar a classificação, o método Sort () chama o método de transformação ToString () de cada item da matriz e compara a sequência resultante. Portanto, o método Sort () compara strings .
var valores = [3,5,53,2,34]; valores.sort (); alerta (valores); // 2,3,34,5,53
No entanto, podemos dizer que essa classificação é basicamente sem sentido, e o que precisamos é classificar os valores numéricos. O método stor () pode receber uma função de comparação como um argumento para especificar as regras de classificação.
A função de comparação recebe dois parâmetros, retorna um número negativo se o primeiro parâmetro deve estar antes do segundo parâmetro, retornará 0 se os dois parâmetros forem iguais e retornará um número positivo se o primeiro parâmetro for após o segundo parâmetro.
função compare (value1, value2) {if (value1 <value2) {return -1; } else if (value1> value2) {return 1; } else {return 0; }} var valores = [3,5,53,2,34]; valores.sort (compare); alerta (valores); // 2,3,4,34,536. Método de operação
Método concat ()
Uma nova matriz pode ser criada com base em todos os itens na matriz atual. Este método cria uma cópia da matriz atual, adiciona os parâmetros ao final da cópia e retorna a matriz recém -construída. Se uma ou mais matrizes forem passadas para o método concat (), cada item na matriz será adicionado à matriz.
var Arrays = ["A", "B", "C"]; var Arrays2 = Arrays.Concat ("D", ["E", "Fe"]); Alert (Matriz); // a, b, calert (Arrays2); // a, b, c, d, e, fMétodo Slice ()
Cria uma nova matriz com base em um ou mais itens na matriz atual. O método slice () pode receber um ou dois parâmetros, ou seja, as posições de início e final do item a serem retornadas . Quando existe apenas um parâmetro, ele retorna todos os itens do item inicial ao final da matriz. Quando existem dois parâmetros, ele retorna o item entre a posição inicial e a posição final (excluindo o item final). O método slice () não afetará a matriz original.
var cidades = ["Pequim", "Shanghai", "Shenzhen", "Guangzhou"]; var cities2 = cidades.slice (1); var cities3 = cidades.slice (1,3); alert (cidades2); // Shanghai, Shenzhen, alerta de Guangzhou (cidades3); // Xangai, Shenzhen
Método Splice ()
O método Splice () é usado principalmente para inserir itens no meio da matriz, e há três maneiras de usá -lo:
• Excluir pode excluir qualquer número de itens, especificar 2 parâmetros: o primeiro item a ser excluído e o número de itens a serem excluídos, como: Splice (1,3) excluirá os 2º, 3º e 4º itens na matriz
var cidades = ["Pequim", "Shanghai", "Shenzhen", "Guangzhou"]; Cities.Splice (1,3); Alert (cidades); // Pequim
• Insira que você pode inserir qualquer número de itens na posição especificada. Especifique 3 parâmetros: posição inicial, 0 (número de itens a serem excluídos) e item a ser inserido
var cidades = ["Pequim", "Shanghai", "Shenzhen", "Guangzhou"]; Cities.Splice (1,0, "Hong Kong"); alerta (cidades); // Pequim, Hong Kong, Xangai, Shenzhen, Guangzhou
• Substitua os itens que podem substituir a posição especificada. Especifique 3 parâmetros: posição inicial, item a ser excluído e qualquer item a ser inserido.
var cidades = ["Pequim", "Xangai", "Shenzhen", "Guangzhou"]; Cities.Splice (1,2, "Hong Kong"); alerta (cidades); // Pequim, Hong Kong, Guangzhou
7. Método de posição
Existem dois métodos posicionais no método JavaScript: indexOf () e LastIndexOF (). Ambos os métodos recebem dois parâmetros: o item a ser encontrado e o índice (opcional) indicando a localização do ponto de partida da pesquisa.
O método indexOf () significa olhar para trás desde o início da matriz, enquanto o LastIndexOF () começa no final da matriz. Todos eles retornam a posição do item encontrado na matriz e -1 se não for encontrado. O congruente é usado ao comparar o primeiro parâmetro com cada item na matriz.
var nums = [1,2,3,4,5,6]; alerta (nums.IndexOF (3)); // 2ALERT (nums.LastIndexOF (5)); // 4Alert (nums.IndexOF (3,1)); // 2ALERT (nums.LastIndexOF (4,4)); // 3
8. Método de iteração
O JavaScript fornece 5 métodos iterativos para matrizes. Cada método recebe dois parâmetros: a função a ser executada em cada item e (opcional) o objeto de escopo que executa a função - afetando o valor disso. Parâmetros que precisam ser passados: o valor do item da matriz, a posição do item na matriz e o próprio objeto da matriz.
• Todo (): executa uma determinada função em cada item da matriz e, se o número de linhas retornar verdadeiro para cada item, ele retornará true.
• filtro (): execute uma determinada função em cada item na matriz e retorne uma matriz composta por itens que retornarão true.
• foreach (): executa uma determinada função em cada item da matriz sem retornar um valor
• map (): uma função que consiste em executar uma determinada função em cada item na matriz, retornando o resultado de cada chamada de função.
• Alguns (): executa uma determinada função em cada item na matriz. Se algum item retornar verdadeiro, a função retornará true.
Nenhum dos métodos acima modificará os valores contidos na matriz.
9. Método de mesclagem
Existem dois métodos para mesclar matrizes em JavaScript: ReduD () e ReduceRight (). Ambos os métodos iteram em todos os itens da matriz e, em seguida, criam um valor final retornado. Onde o método Reduce () começa a partir do primeiro item da matriz, e ReduceRight () começa a partir do último item da matriz.
Ambos podem receber dois parâmetros: uma função chamada em cada item e (opcional) como o valor inicial da base de mesclagem. A função foi aprovada para reduzir () e reduteright () recebe 4 parâmetros: o valor anterior, o valor atual, o índice do item e o objeto da matriz. Qualquer valor retornado por esta função será passado automaticamente para o próximo item como o primeiro parâmetro. A primeira iteração ocorre no segundo termo da matriz; portanto, o primeiro parâmetro é o primeiro termo da matriz e o segundo parâmetro é o segundo termo da matriz.
var valores = [1,2,3,4,5]; var sum = valores.Reduce (function (prev, cur, índice, matriz) {return prept+curs;}); alert (soma); // 15Na primeira vez em que a função de retorno de chamada é executada, o prev é 1 e o curs é 2. Na segunda vez, prev é 3 (1+2), o cur é 3 (valor do terceiro termo da matriz), sabendo que cada item é acessado.
ReduceRight () tem funções semelhantes, mas a direção é oposta.
A análise abrangente acima do tipo JavaScript: Array é todo o conteúdo que compartilho com você. Espero que você possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.