首页 > 解决方案 > 在 JS 中访问对象属性

问题描述

我目前正在写博客,我有点卡住了,我需要一些帮助!

用户在创建文章时,可以通过“位置”属性设置一个特殊的标签,将文章推送到网站顶部。所以article.position可以等于“第一”、“第二”、“第三”或“无”(这是默认位置),具体取决于用户设置。

下面是使用 axios 创建文章的方法:

addArticle() {

  axios.post('http://localhost:4000/articles', {
     title: this.title,
     description: this.description,
     content: this.content,
     position: this.position,
    })

     .then(function (response) {
       console.log(response);
     })
     .catch(function (error) {
       console.log(error);
      });
   },

一切正常,但问题是:

当用户创建具有特殊位置的文章时,如果文章已经设置为相同的位置,我希望将其替换为用户刚刚设置的新文章。

例如:旧文章 A 有position == "first". 用户正在创建一个新的文章 B,他希望文章 B 位于顶部,他设置position == "first". 文章 A 位置现在应设置为“无”。

重要提示:文章位于 Vuex 商店。

这是我尝试过的,在 axios 请求上方的 addArticle 方法中:

if (article.position == "first") {

  let articlesList = this.$store.state.articles

  for (var i = 0; articlesList.length; i++) {
    if(articlesList[i].position == "first")
      articlesList[i].position == "none"
  }
}

我是菜鸟,所以可能有很多错误,我做错了什么?

感谢您的时间!

标签: javascriptvue.jsaxios

解决方案


  if (article.position === 'first') {

    let articlesList = this.$store.state.articles;

    for (i = 0; i < articlesList.length; i++) {
      if(articlesList[i].position === 'first')
        articlesList[i].position = "none"
    }
  }

我只是在没有提及最佳实践和其他东西的情况下进行最小的更改。


推荐阅读