pesquisa rápida
análise de método
1:concat();
Função:
合并数组
, um ou mais arrays podem ser mesclados, e os dados após os arrays mesclados serão retornados,不会改变原来的数组
;
var str1 = [12,2,"hello"];var str2 = ["world"];
console.log(str1.concat(str2)); //[12, 2, "hello", "world"]
console.log(str1); //[12,2,"hello"];
2:juntar();
Função: Converte um array em uma string e retorna os dados da string convertida sem alterar o array original;
Nota: Use aspas duplas em () para incluir o delimitador que deseja usar. O padrão é uma vírgula. É conveniente observar aqui. Eu usei -
var str1 = [12,2,"hello"];
var str2 = ["world"];
console.log(str1.join("-")); //12-2-hello
console.log(str1); //[12, 2, "hello"]
3:pop();
função:
删除数组的最后一位
, e返回删除的数据,会改变原来的数组
var str1 = [12,2,"hello"];
console.log(str1.pop() //hello
console.log(str1); //[12, 2]
4:shift();
Função:
删除数组的第一位数据
, e返回删除的数据,会改变原来的数组
.
5:unshift();
função: na matriz
首位新增一个或多数据
e返回新数组的长度,会改变原来的数组
Nota:
unshift()
Os dados retornados pelo método são o comprimento do novo array, e os dados que ele adiciona podem ser um ou mais, o que pode ser entendido como adicionar uma série de dados,
var str1 = [12,2,"hello"];
var str2 = [43,2,"test"];
console.log(str1.unshift("你好")); //4
console.log(str2.unshift("hello","world")); //5
console.log(str1); //["你好", 12, 2, "hello"]
console.log(str2); //["hello", "world", 43, 2, "test"]
6:empurrar();
Função: Adicione um ou mais dados ao último dígito do array e retorne o comprimento do novo array, o que mudará o array original
Nota: Os dados retornados pelo método push() são o comprimento do novo array, os dados que ele adiciona podem ser um ou mais, o que pode ser entendido como a adição de uma série de dados.
var str1 = [12,2,"hello"];
var str2 = [43,2,"test"];
console.log(str1.push("你好")); //4
console.log(str2.push("hello","world")); //5
console.log(str1); //[12, 2, "hello","你好"]
console.log(str2); //[43, 2, "test","hello", "world"]
7:reverso();
Função: vontade
数组的数据进行反转,并且返回反转后的数组,会改变原数组
var str1 = [12,2,"hello"];
console.log(str1.reverse()); //["hello", 2, 12]
console.log(str1); //["hello", 2, 12]
8:sort();
Função: Classificar os dados no array (o padrão é ordem crescente) e retornar o novo array classificado, que mudará o array original
Perceber:
- 8.1: A ordenação aqui é
针对字符的排序
usar otoString()
método array para convertê-lo em uma string primeiro, e depois comparar bit a bit, 3 é maior que 12, pois o primeiro bit ,3>1
não confunda comNumber
o tipo data sorting- 8.2:
str2
Três caracteres são adicionados ao array. Você pode ver que, ao comparar,zoom
é o maior, porque a primeira letra do inglêsASCII
pode ser convertida no valor correspondente através do código e depois comparar de acordo com o valor
var str1 = [12,2,43,5,2,5];
var str2 = [92,2,43,"hello",'zoom',5,2,5];
console.log(str1.sort());//[12, 2, 2, 43, 5, 5]
console.log(str1);//[12, 2, 2, 43, 5, 5]
console.log(str2.sort());//[2, 2, 43, 5, 5, 92, "abc", "hello", "zoom"]
console.log(str2);//[2, 2, 43, 5, 5, 92, "abc", "hello", "zoom"]
8.3: Classificando Problemas
Parâmetros:
sort(callback)
Se você precisar classificar por valor, precisará passar parâmetros.sort(callback)
,callback
é a função de retorno de chamada que deve receber dois parâmetros, comparar os dois parâmetros e retornar um número que descreve a ordem relativa dos dois valores(a-b)
. Seu valor de retorno é o seguinte:Retorna um valor menor que 0 se a for menor que b.
Retorna 0 se a for igual a b.
Retorna um valor maior que 0 se a for maior que b.
var str3 = [92,2,43,5,2,5];
console.log(str3.sort(fn)); //[2, 2, 5, 5, 43, 92]
console.log(str3); //[2, 2, 5, 5, 43, 92]
function fn (a,b){
return a-b;
}
9: fatia();
Função: interceptar o array na posição especificada e retornar o array interceptado sem alterar o array original
parâmetro:
slice(startIndex, endIndex)
Observação: os elementos selecionados podem ser retornados de uma matriz existente. Este método aceita dois parâmetros
slice(start,end)
,stsrt
que são obrigatórios, indicando a posição inicial;end
opcionais, indicando a posição final (não incluindo a posição final), e omitindo-o significa a última posição; tanto o início quanto o fim podem ser números negativos, quando o número é negativo, significa contar a partir do último dígito, como -1 significa o último dígito.
var arr = ["T1","J1","L1","L2","M1"];
console.log(arr.slice(1,3)); //["J1","L1"]
console.log(arr.slice(1)); //["J1","L1","L2","M1"]
console.log(arr.slice(-4,-1)); //["J1","L1","L2"]
console.log(arr.slice(-2)); //["Lily","M1"]
console.log(arr.slice(1,-2)); //["J1","L1"]
console.log(arr); //["T1","J1","L1","L2","M1"]
10:juntar();
Função: Adicione à matriz, exclua da matriz ou substitua os elementos na matriz e, em seguida, retorne o elemento excluído/substituído.
Parâmetros:
splice(start,num,data1,data2,...)
; Todos os parâmetros são opcionais.
var arr = ["Tom","Jack","Lucy","Lily","May"];
console.log(arr.splice(2,0,"a","b"));//[]
console.log(arr);//["Tom", "Jack", "a", "b", "Lucy", "Lily", "May"]---原数组改变
11:toString();
Função: converter array em string,
类似于没有参数的join()
. Este método será chamado automaticamente quando os dados sofrerem uma conversão de tipo implícita.Se for chamado manualmente, será convertido diretamente para uma string. não altera o array original
var str = [1,2,3];
console.log(str.toString()); //1,2,3
console.log(str);//[1,2,3]
12:valorDe();
Função: Retorna o valor original do array (em geral, na verdade é o próprio array), que normalmente é chamado pelo js em segundo plano e não aparece explicitamente no código
var str = [1,2,3];
console.log(str.valueOf()); //[1,2,3]
console.log(str); //[1,2,3]
//为了证明返回的是数组自身
console.log(str.valueOf() == str);//true
13:IndexOf();
Função: De acordo com os dados especificados, da esquerda para a direita, consulta a posição no array, se o dado especificado não existir, retorna -1, se o dado especificado for encontrado, retorna o índice dos dados
Parâmetros: indexOf(value, start); value é o dado a ser consultado; start é opcional, indicando a posição inicial da consulta. Quando start é negativo, conta a partir do final do array; se o valor não pode ser encontrado , então o método retorna -1
注意:如果找到该数据,立即返回该数据的索引,不再往后继续查找
var str = ["h","e","l","l","o"];
console.log(str.indexOf("l")); //2
console.log(str.indexOf("l",3)); //3
console.log(str.indexOf("l",4)); //-1
console.log(str.indexOf("l",-1)); //-1
console.log(str.indexOf("l",-3)); //2
14:últimoIndexOf();
Função: O método lastIndexOf() pode retornar a posição da última ocorrência de um valor de string especificado, se o segundo parâmetro start for especificado, então
在一个字符串中的指定位置从后向前搜索
.Parâmetros: lastIndexOf(value, start); value são os dados a serem consultados; start é um parâmetro inteiro opcional. Especifica a posição na string para iniciar a pesquisa. Seus valores válidos são de 0 a stringObject.length - 1. Se este parâmetro for omitido, a busca começará a partir do último caractere da string.
var str = ["h","e","l","l","o"];
console.log(str.lastIndexOf("l")); //3
console.log(str.lastIndexOf("l",3)); //3
console.log(str.lastIndexOf("l",4)); //3
console.log(str.lastIndexOf("l",-1)); //3
console.log(str.lastIndexOf("l",-3)); //2
- Nota: Este método
从后向前
recupera a string, mas retorna a posição da última ocorrência da substring contando a partir da posição inicial (0). para ver se contém uma string. A pesquisa começa no início da string ou no final da string (quando o início não é especificado).如果没有找到匹配字符串则返回 -1 。
- Observação: o método lastIndexOf() diferencia maiúsculas de minúsculas!
15:paraCada();
Função: novo método ES5, usado para percorrer o array, sem valor de retorno,
Parâmetros: forEach(callback); callback tem três parâmetros por padrão, que são value (os dados do array percorrido), index (o índice correspondente) e self (o próprio array).
var arr = ["Tom","Jack","Lucy","Lily","May"];
var a = arr.forEach(function(value,index,self){
console.log(value + "--" + index + "--" + (arr === self));
})
// 打印结果为:
// Tom--0--true
// Jack--1--true
// Lucy--2--true
// Lily--3--true
// May--4--true
console.log(a); //undefined---forEach没有返回值
//该方法为遍历方法,不会修改原数组
16:mapa();
Função:
Igual à função forEach;
A função callback de map retornará o resultado da execução, e finalmente map retornará os valores de retorno de todas as funções callback em um novo array.
- Parâmetros:
map(callback)
;callback tem três parâmetros por padrão, respectivamentevalue,index,self
. Igual ao parâmetro de forEach() acima
//功能1:同forEach
var arr = ["Tom","Jack","Lucy","Lily","May"];
var a = arr.map(function(value,index,self){
console.log(value + "--" + index + "--" + (arr === self))
})
// 打印结果为:
// Tom--0--true
// Jack--1--true
// Lucy--2--true
// Lily--3--true
// May--4--true
//功能2:每次回调函数的返回值被map组成新数组返回
var arr = ["Tom","Jack","Lucy","Lily","May"];
var a = arr.map(function(value,index,self){
return "hi:"+value;
})
console.log(a); //["hi:Tom", "hi:Jack", "hi:Lucy", "hi:Lily", "hi:May"]
console.log(arr); //["Tom", "Jack", "Lucy", "Lily", "May"]---原数组未改变
17:filtro();
Funções: 1. Igual à função forEach
filter的回调函数需要返回布尔值,当为true时,将本次数组的数据返回给filter,最后filter将所有回调函数的返回值组成新数组返回(此功能可理解为“过滤”)
;Parâmetros: filter(callback); callback tem três parâmetros por padrão, que são value, index e self.
//功能1:同forEach
var arr = ["Tom","Jack","Lucy","Lily","May"];
var a = arr.filter(function(value,index,self){
console.log(value + "--" + index + "--" + (arr === self))
})
// 打印结果为:
// Tom--0--true
// Jack--1--true
// Lucy--2--true
// Lily--3--true
// May--4--true
//功能2:当回调函数的返回值为true时,本次的数组值返回给filter,被filter组成新数组返回
var arr = ["Tom","Jack","Lucy","Lily","May"];
var a = arr.filter(function(value,index,self){
return value.length > 3;
})
console.log(a); //["Jack", "Lucy", "Lily"]
console.log(arr); //["Tom", "Jack", "Lucy", "Lily", "May"]---原数组未改变
18:cada();
Características:
判断数组中每一项是否都满足条件,只有所有项都满足条件,才会返回true
.Parâmetros: every() recebe uma função callback como parâmetro. Essa função callback precisa ter um valor de retorno, every(callback); callback tem três parâmetros por padrão, que são value, index e self.
Função 1: Quando o valor de retorno da função de retorno de chamada for verdadeiro, é semelhante à função de forEach, percorrendo todos; se for falso, pare a execução e os dados subsequentes não serão percorridos,
停在第一个返回false的位置
.
//demo1:
var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
var a = arr.every(function(value,index,self){
console.log(value + "--" + index + "--" + (arr == self))
})
// 打印结果为:
// Tom--0--true
//因为回调函数中没有return true,默认返回undefined,等同于返回false
//demo2:
var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
var a = arr.every(function(value,index,self){
console.log(value + "--" + index + "--" + (arr == self))
return value.length < 4;
})
// 打印结果为:
// Tom--0--true
// abc--1--true
// Jack--2--true
//因为当遍历到Jack时,回调函数到return返回false,此时Jack已经遍历,但是后面数据就不再被遍历了
//demo3:
var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
var a = arr.every(function(value,index,self){
console.log(value + "--" + index + "--" + (arr == self))
return true;
})
// 打印结果为:
// Tom--0--true
// abc--1--true
// Jack--2--true
// Lucy--3--true
// Lily--4--true
// May--5--true
//因为每个回调函数的返回值都是true,那么会遍历数组所有数据,等同于forEach功能
Função 2: Quando o valor de retorno de cada função de retorno de chamada é verdadeiro, o valor de retorno de cada é verdadeiro, desde que haja uma função de retorno de chamada com valor de retorno de falso, o valor de retorno de cada é falso
19:alguns();
Características:
判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true
.Parâmetros: some() recebe uma função callback como parâmetro. Essa função callback precisa ter um valor de retorno, some(callback); callback tem três parâmetros por padrão, que são value, index e self.
Função 1: Como é necessário julgar cada item do array, desde que haja uma função de retorno de chamada que retorne verdadeiro, alguns retornarão verdadeiro, portanto, é exatamente o oposto de cada. Quando uma função de retorno de chamada retorna verdadeiro, o resultado pode ser determinado, então pare a execução, os dados subseqüentes não serão mais percorridos, pare na primeira posição que retorna verdadeiro; quando o valor de retorno da função de retorno de chamada é falso, ele precisa continuar a executar para trás e o resultado só pode ser determinado no final, portanto, todos os dados serão percorridos para obter resultados semelhantes. Na função de forEach, percorra todos.
//demo1:
var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
var a = arr.some(function(value,index,self){
console.log(value + "--" + index + "--" + (arr == self))
return value.length > 3;
})
// 打印结果为:
// Tom--0--true
// abc--1--true
// Jack--2--true
//demo2:
var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
var a = arr.some(function(value,index,self){
console.log(value + "--" + index + "--" + (arr == self))
return true;
})
// 打印结果为:
// Tom--0--true
//demo3:
var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
var a = arr.some(function(value,index,self){
console.log(value + "--" + index + "--" + (arr == self))
return false;
})
// 打印结果为:
// Tom--0--true
// abc--1--true
// Jack--2--true
// Lucy--3--true
// Lily--4--true
// May--5--true
Função 2: Ao contrário de every, desde que haja uma função de retorno de chamada cujo valor de retorno seja verdadeiro, o valor de retorno de alguns é verdadeiro, o valor de retorno de todas as funções de retorno de chamada é falso e o valor de retorno de alguns é falso
//demo1:
var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
var a = arr.some(function(value,index,self){
return value.length > 3;
})
console.log(a); //true
//demo2:
var arr = ["Tom","abc","Jack","Lucy","Lily","May"];
var a = arr.some(function(value,index,self){
return value.length > 4;
})
console.log(a); //false
20.reduzir();
Função: Comece do primeiro item do array, percorra até o final um por um, repita todos os itens do array e então
构建一个最终返回的值
.Parâmetros: reduce() recebe um ou dois parâmetros: o primeiro é uma função callback, indicando a função a ser chamada em cada item do array; o segundo parâmetro (opcional) é usado como valor inicial do merge, e é chamado pela função callback O primeiro parâmetro recebido em um tempo de execução. reduce(callback, initial); callback tem quatro parâmetros por padrão, ou seja, prev, now, index, self. Qualquer valor retornado pelo callback será usado como o primeiro parâmetro da próxima execução. Se o parâmetro inicial for omitido, então a primeira iteração ocorre no segundo item do array, então o primeiro parâmetro do callback é o primeiro item do array, e o segundo parâmetro é o segundo item do array.
//demo1:不省略initial参数,回调函数没有返回值
var arr = [10,20,30,40,50];
arr.reduce(function(prev,now,index,self){
console.log(prev + "--" + now + "--" + index + "--" + (arr == self))
}, 2019)
// 打印结果为:
// 2019--10--0--true
// undefined--20--1--true
// undefined--30--2--true
// undefined--40--3--true
// undefined--50--4--true
// 此时回调函数没有return,所以从第二次开始,prev拿到的是undefined
//demo2:省略initial参数,回调函数没有返回值
var arr = [10,20,30,40,50];
arr.reduce(function(prev,now,index,self){
console.log(prev + "--" + now + "--" + index + "--" + (arr == self))
})
// 打印结果为:第一次,回调函数的第一个参数是数组的第一项。第二个参数就是数组的第二项
// 10--20--1--true
// undefined--30--2--true
// undefined--40--3--true
// undefined--50--4--true
// 此时回调函数没有return,所以从第二次开始,prev拿到的是undefined
//demo3:不省略initial参数,回调函数有返回值
var arr = [10,20,30,40,50];
arr.reduce(function(prev,now,index,self){
console.log(prev + "--" + now + "--" + index + "--" + (arr == self));
return "hello";
}, 2019)
// 打印结果为:
// 2019--10--0--true
// hello--20--1--true
// hello--30--2--true
// hello--40--3--true
// hello--50--4--true
// 此时回调函数有return,所以从第二次开始,prev拿到的是回调函数return的值
//demo4:省略initial参数,回调函数有返回值
var arr = [10,20,30,40,50];
arr.reduce(function(prev,now,index,self){
console.log(prev + "--" + now + "--" + index + "--" + (arr == self));
return "hello";
})
// 打印结果为:第一次,回调函数的第一个参数是数组的第一项。第二个参数就是数组的第二项
// 10--20--1--true
// hello--30--2--true
// hello--40--3--true
// hello--50--4--true
// 此时回调函数有return,所以从第二次开始,prev拿到的是回调函数return的值
//demo5:使用reduce计算数组中所有数据的和
var arr = [10,20,30,40,50];
var sum = arr.reduce(function(prev,now,index,self){
return prev + now;
})
console.log(sum); //150
// 回调函数的最后一次return的结果被返回到reduce方法的身上
//demo6:使用reduce计算数组中所有数据的和
var arr = [10,20,30,40,50];
var sum = arr.reduce(function(prev,now,index,self){
return prev + now;
}, 8)
console.log(sum); //158
// 回调函数的最后一次return的结果被返回到reduce方法的身上
// 因为reduce有第二个参数initial,在第一次执行时被计算,所以最终结果被加上8
21.reduceRight()
Função: (Semelhante a reduzir) Desde
最后一项
o início da matriz, avance um a um até a primeira posição, repita todos os itens da matriz e, em seguida, construa um valor final retornado.Parâmetros: O mesmo que reduzir. demo: O mesmo que reduzir
Quais métodos de array mudarão o array original
unshift();
empurrar();
mudança();
pop();
organizar();
reverter();
emenda();
Esses sete métodos de array foram apresentados acima.Pode ser visto que, quando esses métodos forem usados novamente, o array original será alterado.