javascript - vue拼接方法如何去掉商品名?

标签 javascript vue.js vuejs2

我想尝试删除产品名称。当我点击+时,推送方法添加小米的产品名称。然后当点击-时,但是结果是remove:["Iphone 4S"]。我认为控制台日志应该是remove:["Xiaomi"]。转到jsfiddle .

看动图:

enter image description here

看图:

enter image description here

查看javascript文件:

var app = new Vue({
  el: "#app",
  data: {
    phone: [{
      id: "1",
      name: 'Iphone 4S',
      price: '300',
      count: "0"
    }, {
      id: "2",
      name: 'Xiaomi',
      price: '200',
      count: "0"
    }, {
      id: "3",
      name: 'vivo X20',
      price: '320',
      count: "0"
    }],
    addcart: []
  },
  methods: {
    lessClick(item) {
        if (item.count > 0) {
          item.count--
            console.log("remove:", this.addcart.splice(item.name, 1))

        }
      },
      addClick(item) {
        item.count++
          console.log("add:", this.addcart.push(item.name))

      }
  }
})

HTML 文件:

<div id="app">
  <ul>
    <li v-for="(item,index) in phone">
      Product name: {{item.name}}
      <br>Product price:{{item.price}}
      <br>
      <a class="a-less" @click="lessClick(item)">-</a>
      <input type="text" v-model="item.count">
      <a class="a-add" @click="addClick(item)">+</a>
    </li>
  </ul>
</div>

最佳答案

您使用 splice方法不对。它将要删除的项目的索引作为第一个参数。因此,您首先需要按项目名称查找索引,可能使用 indexOf方法。它应该是这样的:

lessClick(item) {
  if (item.count > 0) {
    item.count--
    const index = this.addcart.indexOf(item.name)

    if (index > -1) {
      const removedName = this.addcart.splice(index, 1)
      console.log("remove:", removedName)
    }
  }
},

演示: https://jsfiddle.net/8ocwtyL0/7/

关于javascript - vue拼接方法如何去掉商品名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48397235/

相关文章:

javascript - 动态附加的vuejs内容: scope.测试不是函数

json - 如何传递对象的vue组件props数组?

javascript - 如何在使用 Vuetify 2.x 的表中自定义默认行中使用 v-html?

javascript - VueJs 如何使用限制器和范围进行分页..?

javascript - 改变类(class)动态无法正常工作

javascript - vue 中对象属性变为空白

javascript - 使用窗口滚动将其更改为固定时保持元素位置

javascript - Web 应用程序中客户端的文件解析

javascript - React Apollo Hooks - 链突变

javascript - 更改输入框的值状态时出错