Häufig verwendete JS-bezogene Vorgänge

Überschneidung

Wenn Sie in Vue den Schnittpunkt zweier Arrays ermitteln möchten, können Sie die Filtermethode von JavaScript in Kombination mit der Includes-Methode verwenden, um dies zu erreichen.
Hier ist ein Beispielcode mit Vue.js, der zeigt, wie der Schnittpunkt zweier Arrays ermittelt wird:

<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>

Im obigen Beispiel sind arrayA und arrayB jeweils zwei Arrays. Wir berechnen den Schnittpunkt, indem wir den Eigenschaftsschnittpunkt berechnen, und verwenden die Filtermethode, um die Elemente in ArrayA zu filtern, die in ArrayB vorhanden sind.

Wenn Sie dieses Beispiel ausführen, werden Array A, Array B und deren Schnittmenge auf der Seite angezeigt. Bitte beachten Sie, dass die Schnittmenge entsprechend der Reihenfolge von ArrayA gefiltert wird. Wenn die Reihenfolge unterschiedlich ist, ist das Ergebnis der Schnittmenge unterschiedlich.

Zwei Objekte zusammenführen

Wenn Sie in Vue zwei Objekte zusammenführen und den Wert in einem Objekt für dieselbe Eigenschaft beibehalten möchten, können Sie dies mit der Methode Object.assign() oder dem Spread-Operator (…) erreichen.
Hier ist ein Beispielcode, der zeigt, wie zwei Objekte zusammengeführt werden und die Werte derselben Eigenschaften erhalten bleiben:

// 对象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);

Im obigen Beispiel haben wir den Spread-Operator (…) verwendet, um ObjektA und ObjektB zusammenzuführen und das Ergebnis mergedObject zuzuweisen. Für dieselbe Eigenschaft behält der Spread-Operator den Wert in ObjektB bei und ignoriert den Wert in ObjektA.
Wenn Sie dieses Beispiel ausführen, sehen Sie die Ausgabe als {a: 1, b: 4, c: 5, d: 6}, wobei die Werte der Eigenschaften b und c von ObjektB stammen und der Wert einer Eigenschaft von ObjektA.

Deduplizierung

  • Ungeordnet
    Sie können die Set-Datenstruktur in JavaScript verwenden, um zwei Listen zu deduplizieren. Set ist eine Sammlungsdatenstruktur, die nur eindeutige Werte speichern kann. Doppelte Werte werden automatisch dedupliziert.
    Hier ist eine Möglichkeit, eine Liste mit Set zu deduplizieren:
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);

Im obigen Beispiel führen wir zunächst die beiden Listen list1 und list2 zu einer neuen Liste mergedList zusammen und verwenden dann Set, um die mergedList zu deduplizieren. Abschließend wandeln wir das deduplizierte Ergebnis wieder in ein Array um und drucken es aus.
Wenn Sie dieses Beispiel ausführen, werden Sie sehen, dass die Ausgabe [1, 2, 3, 4, 5, 6, 7, 8] ist, wobei doppelte Elemente entfernt wurden.
Beachten Sie, dass Set eine ungeordnete Datenstruktur ist und die Reihenfolge der ursprünglichen Liste nicht beibehält. Wenn Sie die Reihenfolge der ursprünglichen Liste beibehalten müssen, können Sie andere Methoden verwenden, z. B. die Verwendung von Array.filter() und Array.indexOf() zum Deduplizieren.

  • Reihenfolge
    Wenn Sie die Reihenfolge der Daten sicherstellen und die Liste deduplizieren müssen, können Sie dazu die Methoden Array.filter() und Array.indexOf() in JavaScript verwenden.
    Hier ist eine Möglichkeit, eine geordnete Liste mithilfe von Array.filter() und Array.indexOf() zu deduplizieren:
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);

Im obigen Beispiel führen wir zunächst die beiden Listen list1 und list2 zu einer neuen Liste mergedList zusammen und verwenden dann die Filtermethode und die indexOf-Methode, um die mergedList zu deduplizieren. Die Filtermethode durchläuft jedes Element in der mergedList und beurteilt anhand des Rückgabewerts der indexOf-Methode, ob das Element beibehalten werden soll. Nur wenn das Element zum ersten Mal angezeigt wird und der von der indexOf-Methode zurückgegebene Index dem aktuell durchlaufenen Index entspricht, wird das Element beibehalten.
Abschließend drucken wir die deduplizierten Ergebnisse aus. Da wir die Filtermethode verwenden, bleibt die Reihenfolge der ursprünglichen Liste erhalten, sodass die Ausgabe in Ordnung ist.
Wenn Sie dieses Beispiel ausführen, werden Sie sehen, dass die Ausgabe [1, 2, 3, 4, 5, 6, 7, 8] ist, wobei doppelte Elemente entfernt wurden und die Reihenfolge der ursprünglichen Liste beibehalten wird.

  • Sortiert und dedupliziert gemäß der ID-Eigenschaft des Objekts.
    Wenn Sie gemäß der ID-Eigenschaft des Objekts deduplizieren möchten, können Sie die Methoden Array.filter() und Array.findIndex() in JavaScript verwenden.
    Hier ist eine Möglichkeit, eine Liste von Objekten mithilfe von Array.filter() und Array.findIndex() zu deduplizieren:
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);

Im obigen Beispiel führen wir zunächst die beiden Listen list1 und list2 zu einer neuen Liste mergedList zusammen und verwenden dann die Filtermethode und die findIndex-Methode, um die mergedList zu deduplizieren. Die Filtermethode durchläuft jedes Element in der mergedList und beurteilt anhand des Rückgabewerts der findIndex-Methode, ob das Element beibehalten werden soll. Nur wenn das Element zum ersten Mal auftritt und der von der findIndex-Methode zurückgegebene Index dem aktuell durchlaufenen Index entspricht, wird das Element beibehalten.

Abschließend drucken wir die deduplizierten Ergebnisse aus. Da wir die Filtermethode verwenden, bleibt die Reihenfolge der ursprünglichen Liste erhalten, sodass die Ausgabe in Ordnung ist.

Wenn Sie dieses Beispiel ausführen, sehen Sie die Ausgabe wie folgt:

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

Das Listenobjekt erhält den Wert einer seiner Eigenschaften

Um den Wert einer Eigenschaft eines Objekts in einer Liste abzurufen, können Sie die Methode Array.map() in JavaScript verwenden.
Hier ist eine Möglichkeit, den Wert einer Eigenschaft eines Listenobjekts mithilfe der Methode Array.map() abzurufen:

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);

Im obigen Beispiel haben wir eine Liste, die mehrere Objekte enthält. Jedes Objekt verfügt über ID- und Namensattribute. Wir verwenden die Map-Methode, um jedes Objekt in der Liste zu durchlaufen und den Wert der Namenseigenschaft des Objekts zurückzugeben. Schließlich speichern wir die Eigenschaftswerte im PropertyValues-Array und drucken die Ausgabe aus.
Wenn Sie dieses Beispiel ausführen, werden Sie sehen, dass die Ausgabe ['Alice', 'Bob', 'Charlie'] ist, die den Namensattributwert jedes Objekts in der Liste enthält.
Wenn Sie den Wert anderer Eigenschaften erhalten möchten, ersetzen Sie einfach item.name durch die Eigenschaft, die Sie erhalten möchten.

Entfernen Sie die Daten im Listenobjekt entsprechend dem Objekt

Wenn Sie Objekte in einer Liste (Array) basierend auf dem Wert einer bestimmten Eigenschaft des Objekts entfernen möchten, können Sie die Filtermethode von JavaScript verwenden. Die Filtermethode kann qualifizierte Elemente gemäß den angegebenen Bedingungen herausfiltern und ein neues Array zurückgeben.
Im Folgenden finden Sie einen Beispielcode, der zeigt, wie Sie mit der Filtermethode Objekte basierend auf dem Wert einer bestimmten Eigenschaft des Objekts aus einer Liste entfernen:

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);

Im obigen Beispiel haben wir eine Liste mit mehreren Objekten. Jedes Objekt verfügt über ein ID-Attribut. Wir möchten ein Objekt basierend auf dem Wert des ID-Attributs aus der Liste entfernen. In diesem Beispiel möchten wir das Objekt mit der ID 2 entfernen. Wir verwenden die Filtermethode, um Objekte herauszufiltern, deren ID ungleich 2 ist, und speichern das Ergebnis in filteredList. Schließlich geben wir filteredList auf der Konsole aus und können die entfernten Objekte sehen.

Entfernen Sie das Listenobjekt entsprechend dem Listenobjekt in einem anderen Listenobjekt

Sie können die Filtermethode in JavaScript verwenden, um Elemente aus einem Listenobjekt basierend auf einem anderen Listenobjekt zu entfernen. Hier ist ein Beispielcode, der zeigt, wie Sie die Filtermethode verwenden, um diese Funktionalität zu erreichen:

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);

Im obigen Beispiel haben wir zwei Listenobjekte list1 und list2. Wir möchten aus Liste1 die Elemente entfernen, die in Liste2 vorhanden sind.
Wir durchlaufen Liste1 mithilfe der Filtermethode und prüfen mithilfe einer Methode, ob es in Liste2 ein Element mit derselben ID gibt. Wenn nicht vorhanden, behalten Sie das Element bei, andernfalls filtern Sie es heraus.
Schließlich erhalten wir eine gefilterte Liste filteredList, die Elemente aus Liste1 enthält, die in Liste2 vorhanden sind.

おすすめ

転載: blog.csdn.net/weixin_43866250/article/details/132562325