js funciones comunes push(), pop(), shift(), unshift(), slice(), splice(), etc.


Recientemente, no estoy muy familiarizado con el uso de algunas funciones front-end. Algunas funciones son fáciles de confundir. Las resumiré aquí y las compartiré con mis amigos:

1. Función unirse ()

join() forma los elementos de la matriz en una cadena y necesita pasar un parámetro como conector. Si no se pasa, el valor predeterminado es una coma.
inserte la descripción de la imagen aquí

2. función empujar()

Agregue elementos uno por uno al final de la matriz, devuelva la longitud de la matriz de resultados, puede recibir cualquier número de parámetros, push () modifica la matriz original.
inserte la descripción de la imagen aquí

3. función pop()

pop() elimina el último elemento de la matriz y devuelve el elemento eliminado. Modificar la matriz original
inserte la descripción de la imagen aquí

4. función shift()

shift() elimina el primer elemento de la matriz, devuelve el elemento eliminado y modifica la matriz original
inserte la descripción de la imagen aquí

5. función de cambio de marcha ()

Agregue elementos al encabezado de la matriz, devuelva la longitud de la matriz resultante, modifique la matriz original
inserte la descripción de la imagen aquí

6. función ordenar()

Organice la matriz en orden ascendente y modifique la matriz original.
inserte la descripción de la imagen aquí
Nota:
El método sort() se usa para ordenar matrices. La sintaxis es la siguiente: array.sort().
Después de usar el método sort(), se cambiará el orden de la matriz original (en lugar de generar una nueva matriz, mientras que la matriz original permanece sin cambios)
Ejemplo uno: ordenar la matriz de caracteres

    var myarr1=["h","e","l","l","o"];
    myarr1.sort();
    console.log(myarr1);//(5) ['e', 'h', 'l', 'l', 'o']
  1. Cuando no hay ningún parámetro en ordenación, comparará y ordenará de acuerdo con los códigos ASCII correspondientes a los elementos de la matriz
    Ejemplo 2: Ordenar la matriz de números
    var myarr2=[9,5,1,4,6];
    myarr2.sort();
    console.log(myarr2);//(5) [1, 4, 5, 6, 9]

ort() no puede ordenar razonablemente arreglos que consisten en elementos de arreglo con más de dos dígitos
Ejemplo

    var myarr2=[10,25,3,8];
    myarr2.sort();
    console.log(myarr2);//10 25 3 8

Causas y soluciones
Debido a que el método sort() primero llamará al método toString() de cada elemento de datos de matriz,
conviértalo en una cadena y luego compárelo. En la cadena "25"<"3", la
solución es necesitar The se utiliza el parámetro de clasificación, y este parámetro se llama la función de comparación en este momento

  1. Parámetros de sort () - función de comparación
    Ejemplo: use la función de comparación para ordenar una matriz de números correctamente
 	var myarr2=[10,25,3,8];
    var mycompare=function (x,y){
    
    
      if(x<y) return -1;
      else if(x>y) return 1
      else return 0;
    };
    myarr2.sort(mycompare);
    console.log(myarr2);//(4) [3, 8, 10, 25]

Los parámetros de la función de comparación
La función de comparación aceptará dos parámetros y los comparará

  • Devuelve un número negativo si el primer argumento debe venir antes que el segundo
  • Si el primer parámetro es igual al segundo parámetro, devuelve 0
  • Si el primer parámetro debe estar después del segundo parámetro, devuelva un número positivo
    A través de la función de comparación de la lógica anterior, la matriz finalmente se organizará en orden ascendente.Si
    desea cambiarlo a orden descendente, solo necesita devolver un número negativo para devolver un número positivo Solo cuente (el número positivo se convierte en número negativo, el número negativo se convierte en número positivo)

Las funciones de comparación no pueden ordenar matrices mashup (char+numeric)

  var myarr3=["h",10];
    myarr3.sort(mycompare);
    console.log(myarr3);//(2) ['h', 10]
    myarr3.sort();
    console.log(myarr3);//(2) [10, 'h']

La función de comparación no se puede usar para comparar una cadena que no se puede convertir en un número y la clasificación de la matriz,
porque la función de comparación primero convertirá la cadena en un número y luego comparará. Cuando la cadena no se puede convertir en un número, el tamaño no se puede comparar (sin función de comparación, es decir, cuando la clasificación no agrega parámetros, la comparación es el valor ASCII, que se puede comparar en este momento)
Uso correcto:

    // 对于不能转换成数字的字符串(字母型字符串),不使用比较参数,直接比较ASCII值
    var myarr3=["h",10];
    myarr3.sort();
    console.log(myarr3);//(2) ['h', 10]
    // 对于可以转换成数字的字符串(数字型字符串),使用比较函数转换成数字再比较
    var myarr4=["23",37,"1",14];
    myarr4.sort(mycompare);
    console.log(myarr4);//(4) ['1', 14, '23', 37]

Resumen:
1. Cuando hay cadenas y números en la matriz, primero verifique si las cadenas son alfabéticas o numéricas.

2. Si es una cadena alfabética, ordenar no necesita tomar parámetros y compara directamente el valor ASCII.Si
es una cadena numérica, ordenar toma parámetros, de modo que la función de comparación convierte la cadena en un número y luego compara

3. ¿Cómo ordenar una matriz compuesta por objetos?
Requisitos
Los elementos de la matriz son objetos, y ahora la matriz debe ordenarse de acuerdo con una determinada propiedad del objeto

	//要求根据对象属性age对数组进行排序
    var arr=[
      {
    
    age:10,name:'Tom'},
      {
    
    age:8,name:'Jack'},
      {
    
    age:20,name:'Michel'},
      {
    
    age:12,name:'Daniel'},
    ];

Solución: usar la función de comparación

    var compare = function (obj1, obj2) {
    
    
        if (obj1.age < obj2.age) return -1;
        else if (obj1.age > obj2.age) return 1;
        else return 0;
    } 
    console.log(arr.sort(compare));

Efecto:

{
    
    age: 8, name: 'Jack'}
{
    
    age: 10, name: 'Tom'}
{
    
    age: 12, name: 'Daniel'}
{
    
    age: 20, name: 'Michel'}

7. función inversa()

La matriz está invertida.

8. función concat()

Sin afectar la matriz original, se copia una matriz y los parámetros se agregan al final de la copia, por lo que si no se pasan parámetros, es equivalente a copiar la matriz original.
inserte la descripción de la imagen aquí

9. función rebanada()

slice() no afecta la matriz original y devuelve una nueva matriz con la posición de inicio especificada - posición final de la matriz original. Esta posición es el subíndice de la matriz, por supuesto, comienza desde 0. Si solo hay un parámetro, es el segundo parámetro hasta el final por defecto.
inserte la descripción de la imagen aquí
Como se puede ver en la demostración, la nueva matriz devuelta es el elemento que no contiene la posición final.
inserte la descripción de la imagen aquí
Si no se pasa el segundo parámetro, volverá al final por defecto, y el último no se incluye. El parámetro es un número negativo, lo que equivale a hacer lo contrario, en este momento incluye la posición final y no incluye la posición inicial.
inserte la descripción de la imagen aquí

10. función de empalme()

Para eliminar cualquier elemento del artículo, se requieren dos parámetros: la posición a eliminar y la cantidad a eliminar.
inserte la descripción de la imagen aquí
Como se ve en la demostración, splice() devuelve una matriz de elementos eliminados y la matriz original se modifica.

Para insertar cualquier elemento del ítem, se requieren tres parámetros: la posición a eliminar, una a no eliminar y el elemento a insertar.
inserte la descripción de la imagen aquí
Resulta que se insertó antes de donde se pretendía insertar.

El reemplazo, de hecho, consiste en eliminar cualquier elemento del elemento en la posición especificada y luego insertar cualquier elemento del elemento.
inserte la descripción de la imagen aquí

11. función indexOf() & lastIndexOf()

Encuentre la posición del elemento del parámetro en la matriz, devuelva -1 si no lo encuentra. El parámetro requerido debe ser el elemento de destino, y hay un parámetro opcional que es el punto de partida para comenzar a buscar. indexOf() busca desde el principio hasta el final, y lastIndexOf() busca desde el final hasta el principio.
inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/u014212540/article/details/130887111
Recomendado
Clasificación