Operaciones relacionadas con JS de uso común

intersección

En Vue, si desea tomar la intersección de dos matrices, puede usar el método de filtro de JavaScript combinado con el método de inclusión para lograrlo.
Aquí hay un código de muestra usando Vue.js que demuestra cómo tomar la intersección de dos matrices:

<template>
  <div>
    <h2>数组A</h2>
    <ul>
      <li v-for="item in arrayA" :key="item">{
   
   { item }}</li>
    </ul>

    <h2>数组B</h2>
    <ul>
      <li v-for="item in arrayB" :key="item">{
   
   { item }}</li>
    </ul>

    <h2>交集</h2>
    <ul>
      <li v-for="item in intersection" :key="item">{
   
   { item }}</li>
    </ul>
  </div>
</template>

<script>
export default {
      
      
  data() {
      
      
    return {
      
      
      arrayA: [1, 2, 3, 4, 5],
      arrayB: [4, 5, 6, 7, 8]
    };
  },
  computed: {
      
      
    intersection() {
      
      
      return this.arrayA.filter(item => this.arrayB.includes(item));
    }
  }
};
</script>

En el ejemplo anterior, matrizA y matrizB son dos matrices respectivamente. Calculamos la intersección calculando la intersección de propiedades y usamos el método de filtro para filtrar los elementos de la matriz A que existen en la matriz B.

Ejecute este ejemplo, verá la matriz A, la matriz B y su intersección mostradas en la página. Tenga en cuenta que la intersección se filtrará según el orden de la matriz A. Si el orden es diferente, el resultado de la intersección será diferente.

Fusionar dos objetos

En Vue, si desea fusionar dos objetos y mantener el valor de un objeto para la misma propiedad, puede usar el método Object.assign() o el operador de extensión (...) para lograrlo.
Aquí hay un código de muestra que demuestra cómo fusionar dos objetos y preservar los valores de las mismas propiedades:

// 对象A
const objectA = {
    
     a: 1, b: 2, c: 3 };

// 对象B
const objectB = {
    
     b: 4, c: 5, d: 6 };

// 合并对象并保留相同属性的值
const mergedObject = {
    
     ...objectA, ...objectB };

console.log(mergedObject);

En el ejemplo anterior, hemos utilizado el operador de extensión (…) para fusionar el objetoA y el objetoB y asignar el resultado al objeto fusionado. Para la misma propiedad, el operador de extensión conserva el valor del objeto B e ignora el valor del objeto A.
Al ejecutar este ejemplo, verá el resultado como {a: 1, b: 4, c: 5, d: 6}, donde los valores de las propiedades b y c provienen del objeto B, y el valor de una propiedad proviene de objeto A.

Deduplicación

  • Desordenado
    Puede utilizar la estructura de datos Establecer en JavaScript para deduplicar dos listas. Set es una estructura de datos de recopilación que solo puede almacenar valores únicos y los valores duplicados se deduplicarán automáticamente.
    Aquí hay una manera de deduplicar una lista usando Set:
const list1 = [1, 2, 3, 4, 5];
const list2 = [4, 5, 6, 7, 8];

// 将两个列表合并
const mergedList = [...list1, ...list2];

// 使用Set进行去重
const uniqueList = [...new Set(mergedList)];

console.log(uniqueList);

En el ejemplo anterior, primero fusionamos las dos listas list1 y list2 en una nueva lista fusionada y luego usamos Set para deduplicar la lista fusionada. Finalmente, volvemos a convertir el resultado deduplicado en una matriz y lo imprimimos.
Al ejecutar este ejemplo, verá que el resultado es [1, 2, 3, 4, 5, 6, 7, 8], donde se han eliminado los elementos duplicados.
Tenga en cuenta que Set es una estructura de datos desordenada y no conserva el orden de la lista original. Si necesita conservar el orden de la lista original, puede utilizar otros métodos, como Array.filter() y Array.indexOf() para deduplicar.

  • Orden
    Si necesita garantizar el orden de los datos y deduplicar la lista, puede utilizar los métodos Array.filter() y Array.indexOf() en JavaScript para lograrlo.
    Aquí hay una manera de deduplicar una lista ordenada usando Array.filter() y Array.indexOf():
const list1 = [1, 2, 3, 4, 5];
const list2 = [4, 5, 6, 7, 8];

// 将两个列表合并
const mergedList = list1.concat(list2);

// 使用filter和indexOf进行去重
const uniqueList = mergedList.filter((item, index) => mergedList.indexOf(item) === index);

console.log(uniqueList);

En el ejemplo anterior, primero fusionamos las dos listas list1 y list2 en una nueva lista fusionada, y luego usamos el método de filtro y el método indexOf para deduplicar la lista fusionada. El método de filtro atraviesa cada elemento en MergedList y juzga si se conserva el elemento de acuerdo con el valor de retorno del método indexOf. Solo cuando el elemento aparece por primera vez, el índice devuelto por el método indexOf es igual al índice atravesado actualmente, el elemento se conservará.
Finalmente, imprimimos los resultados deduplicados. Como utilizamos el método de filtro, el orden de la lista original se conserva, por lo que la salida estará en orden.
Al ejecutar este ejemplo, verá que el resultado es [1, 2, 3, 4, 5, 6, 7, 8], donde se eliminaron los elementos duplicados y se mantuvo el orden de la lista original.

  • Ordenado y deduplicado según la propiedad ID del objeto.
    Si desea deduplicar según la propiedad ID del objeto, puede utilizar los métodos Array.filter() y Array.findIndex() en JavaScript.
    Aquí hay una manera de deduplicar una lista de objetos usando Array.filter() y Array.findIndex():
const list1 = [
  {
    
     id: 1, name: 'Alice' },
  {
    
     id: 2, name: 'Bob' },
  {
    
     id: 3, name: 'Charlie' }
];

const list2 = [
  {
    
     id: 2, name: 'Bob' },
  {
    
     id: 3, name: 'Charlie' },
  {
    
     id: 4, name: 'David' }
];

// 将两个列表合并
const mergedList = list1.concat(list2);

// 使用filter和findIndex进行去重
const uniqueList = mergedList.filter((item, index) => {
    
    
  const foundIndex = mergedList.findIndex(obj => obj.id === item.id);
  return foundIndex === index;
});

console.log(uniqueList);

En el ejemplo anterior, primero fusionamos las dos listas list1 y list2 en una nueva lista fusionada, y luego usamos el método de filtro y el método findIndex para deduplicar la lista fusionada. El método de filtro atraviesa cada elemento en MergedList y juzga si se debe conservar el elemento de acuerdo con el valor de retorno del método findIndex. Sólo cuando el elemento aparece por primera vez, el índice devuelto por el método findIndex es igual al índice actualmente atravesado, se retendrá el elemento.

Finalmente, imprimimos los resultados deduplicados. Como utilizamos el método de filtro, el orden de la lista original se conserva, por lo que la salida estará en orden.

Al ejecutar este ejemplo, verá el resultado como:

[
  { id: 1, name: 'Alice' },
  { id: 2, name: 'Bob' },
  { id: 3, name: 'Charlie' },
  { id: 4, name: 'David' }
]

El objeto de lista obtiene el valor de una de sus propiedades.

Para obtener el valor de una propiedad de un objeto en una lista, puede utilizar el método Array.map() en JavaScript.
Aquí hay una forma de obtener el valor de una propiedad de un objeto de lista usando el método Array.map():

const list = [
  {
    
     id: 1, name: 'Alice' },
  {
    
     id: 2, name: 'Bob' },
  {
    
     id: 3, name: 'Charlie' }
];

// 使用map方法获取属性值
const propertyValues = list.map(item => item.name);

console.log(propertyValues);

En el ejemplo anterior, tenemos una lista que contiene varios objetos, cada objeto tiene atributos de identificación y nombre. Usamos el método map para recorrer cada objeto en la lista y devolver el valor de la propiedad del nombre del objeto. Finalmente, almacenamos los valores de propiedad en la matriz propertyValues ​​e imprimimos el resultado.
Al ejecutar este ejemplo, verá que el resultado es ['Alice', 'Bob', 'Charlie'], que contiene el valor del atributo de nombre de cada objeto en la lista.
Si desea obtener el valor de otras propiedades, simplemente reemplace item.name con la propiedad que desea obtener.

Eliminar los datos en el objeto de lista según el objeto.

Si desea eliminar objetos en una lista (matriz) según el valor de una determinada propiedad del objeto, puede utilizar el método de filtro de JavaScript. El método de filtro puede filtrar elementos calificados según las condiciones especificadas y devolver una nueva matriz.
El siguiente es un código de muestra que muestra cómo utilizar el método de filtro para eliminar objetos de una lista según el valor de una determinada propiedad del objeto:

const list = [
  {
    
     id: 1, name: 'Alice' },
  {
    
     id: 2, name: 'Bob' },
  {
    
     id: 3, name: 'Charlie' }
];

const objectIdToRemove = 2;

const filteredList = list.filter(item => item.id !== objectIdToRemove);

console.log(filteredList);

En el ejemplo anterior, tenemos una lista que contiene varios objetos, cada objeto tiene un atributo de identificación. Queremos eliminar un objeto de la lista según el valor del atributo id. En este ejemplo, queremos eliminar el objeto con ID 2. Usamos el método de filtro para filtrar objetos cuya identificación no es igual a 2 y almacenamos el resultado en filteredList. Finalmente, generamos filteredList en la consola y podemos ver los objetos eliminados.

Según el objeto de lista, elimine el objeto de lista en otro objeto de lista

Puede utilizar el método de filtro en JavaScript para eliminar elementos de un objeto de lista en función de otro objeto de lista. Aquí hay un código de muestra que muestra cómo usar el método de filtro para lograr esta funcionalidad:

const list1 = [
  {
    
     id: 1, name: 'Apple' },
  {
    
     id: 2, name: 'Banana' },
  {
    
     id: 3, name: 'Orange' }
];

const list2 = [
  {
    
     id: 2, name: 'Banana' },
  {
    
     id: 4, name: 'Grape' }
];

const filteredList = list1.filter(item1 => {
    
    
  return !list2.some(item2 => item2.id === item1.id);
});

console.log(filteredList);

En el ejemplo anterior, tenemos dos objetos de lista lista1 y lista2. Queremos eliminar de la lista1 aquellos elementos que están presentes en la lista2.
Repetimos la lista1 usando el método de filtro y verificamos si hay un elemento con la misma identificación en la lista2 usando algún método. Si no está presente, conserve el elemento; en caso contrario, filtrelo.
Finalmente, obtenemos una lista filtrada lista filtrada, que contiene elementos de la lista1 que están presentes en la lista2.

Supongo que te gusta

Origin blog.csdn.net/weixin_43866250/article/details/132562325
Recomendado
Clasificación