Как отобразить второй массив внутри моего вычисленного свойства в vue.js - PullRequest
0 голосов
/ 14 июня 2019

Я хочу отобразить второй массив внутри моего вычисляемого свойства, но только если установлен флажок.В противном случае первый список должен отображаться только.

Мне удалось настроить мой первый список для работы с моим кодом, и он отображается так, как должен, у меня также есть метод, который делает список сортировки по алфавиту (чтоэто то, что я называю категориями).

Как мне объединить другой массив, если значение моего флажка истинно?

Вот код

data: function() {
   return {
     checked: false,
     fruitList: [ //Fist list
       "Apple",
       "Grapes",
       "Mango",
       "Oranges",
       "Banana",
       "Dragon fruit",
       "Pinapple",
       "Coconut",
       "Strawberry"
     ],
      vegetableList:[ //Second list, should only display if checkbox is true
      "cucumber",
       "tomato",
       "onion"
       ]
    };
},
methods:{
return{
 sorted(list) {
     return list.sort();
   }
}
},
computed: {
   categorizedWords() {
     let map = {};
      this.fruitList.forEach(word => {
       let key = word.charAt(0).toUpperCase();
       let list = map[key];
       if (list === undefined) {
         list = [];
         map[key] = this.sortedList(list);
       }
       list.push(word);
     });

     var sortedCategories = this.sortedList(Object.keys(map));
     var sortedMap = sortedCategories.map(category => {
       return { category: category, word: map[category] };
     });
     return sortedMap;
   }
 }


1 Ответ

0 голосов
/ 14 июня 2019

хорошо, так что у меня было все, и я все понял сейчас.Поэтому я изменил свой код на это, и это сработало, это внутри моего вычисляемого свойства:

 computed: {
   categorizedWords() {
     let map = {};
     let isCheched = this.checked;

      let allGreens = this.fruitList;

      if (isChecked === true) {
        allGreens = allGreens.concat(this.vegetableList);
      }

      allGreens.forEach(word => {
       let key = word.charAt(0).toUpperCase();
       let list = map[key];
       if (list === undefined) {
         list = [];
         map[key] = this.sortedList(list);
       }
       list.push(word);
     });

     var sortedCategories = this.sortedList(Object.keys(map));
     var sortedMap = sortedCategories.map(category => {
       return { category: category, word: map[category] };
     });
     return sortedMap;
   }
 }
...