簡體   English   中英

獲取數組中對象的屬性

[英]Getting a property of an object within an array

我使用Vue.js,並且有一種方法可以將一個數組中的值與另一個數組中的值進行比較。

array1:  [{ name: 'test1', somevar: true }, { name: 'test2', somevar: false }]
array2: ['test1', 'test3']

  compare() {
    //I want to access an object property within an array1
    this.array1.forEach((element) => {
      if(this.array1.element.name.includes(this.array2[0])) {
        // if it is true, I would like to remove that compared value from an array 1
        if(this.array2[0] !== -1) {
          var index = this.array1.element.name.indexOf(this.array2[0])
          this.array1.splice(index, 1)
        }
      }

我認為這部分: this.array1.forEach((element)不正確。如何訪問該對象的屬性?

array1是一個數組,不是對象,因此無法訪問this.array1.element 只需將元素作為給forEach的參數來forEach

另外,傳遞給forEach的函數接受另一個參數:第二個參數表示當前元素的索引 ,因此無需搜索indexOf

但是,即使比那些調整更好,在這種情況下使用filter也會更合適:

 const obj = { array1: [{ name: 'test1', somevar: true }, { name: 'test2', somevar: false }], array2: ['test1', 'test3'], compare() { obj.array1 = obj.array1.filter(({ name }) => ( !obj.array2.includes(name) )) } } obj.compare(); console.log(obj.array1); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM