#javascript #vue.js
#javascript #vue.js
Вопрос:
Я использую Vue.js 3 но я не думаю, что это связано с моей проблемой. Я вызываю localStorage, чтобы получить массив объектов post в формате JSON, проанализировать его и использовать идентификатор для поиска сообщения. Я без проблем получаю идентификатор из маршрута, но выполняю поиск в проанализированном массиве.find возвращает значение undefined .
Файл Post.vue
created() {
this.postId = this.$route.params.id;
console.log("****** POST ID *********");
console.log(this.postId);
var posts = JSON.parse(localStorage.getItem("posts"));
console.log("****** POSTS ARRAY *********");
console.log(posts);
this.post = posts.find(post => post.id === this.postId);
console.log("****** POST *********");
console.log(this.post);
}
Комментарии:
1. В Javascript
===
сравнивает тип данных, а также значение. Поэтому вам нужно использовать==
для сравнения строковых и числовых значений.
Ответ №1:
Тип this.postId
— string, а тип идентификатора каждого объекта в posts
массиве — number . Поэтому вы можете использовать ==
вместо ===
. Или измените тип this.postId
на число с помощью parseInt
.
Комментарии:
1. Вот и все! как мне пометить вопрос как ответ? это мой первый вопрос здесь
2. Вы можете найти галочку под кнопками upvote / downvote .