#vue.js #object #vuejs2 #v-for
Вопрос:
Я хотел бы отобразить каждый ответ, который был перетасован, melange()
но reponse
ничего не вернул. Я не знаю, что не так с моим v-для. Может быть, это формат моего объекта.
<label v-bind:key="key" class="bg-white block mt-4 border border-gray-300 rounded-lg py-2 px-6 text-lg"
v-for="reponse,key in reponseQuestion(questions[currentQuestion].idQuestion)"
<div class="fas fa-check" v-bind:id="key"
v-bind:value="reponse"
v-on:click="repondu(key)"
v-bind:disabled="questionSelectionne != ''">
{{ reponse }}
</div>
</label>
reponseQuestion(idQuest) {
this.$axios
.get("http://localhost:4000/api/answers/" idQuest)
.then((response) => {
console.log(this.melange(response.data[0]))
return this.melange(response.data[0])
})
.catch((error) => {
console.log(error);
})
},
melange(obj) {
// new obj to return
let newObj = {};
// create keys array
var keys = Object.keys(obj);
// randomize keys array
keys.sort(function () {
return Math.random() - 0.5;
});
// save in new array
keys.forEach(function (k) {
newObj[k] = obj[k];
});
return newObj
}
Результат повторной проверки() :
{reponse4: "8 s 36", reponse3: "8 s 42", reponse2: "9 s 72", reponse1: "9 s 58"}
Заранее спасибо
Ответ №1:
Вам нужны фигурные скобки (response,key) in responseQuestion
, чтобы переопределить приоритет оператора.
Комментарии:
1. Я добавляю фигурные скобки вокруг запроса
return {newObj}
ответа и меняю букву v, потомуreponse,key in reponseQuestion(questions[questionActuel].idQuestion)[newObj]
что вы это имеете в виду ?2. Я имею в виду, что без фигурных скобок оператор запятой между
response
иkey
имеет более высокий приоритет, чемin
ключевое слово.