Javascript 如何在单击“添加”按钮时增加现有数组的长度

Javascript 如何在单击“添加”按钮时增加现有数组的长度,javascript,html,node.js,reactjs,Javascript,Html,Node.js,Reactjs,我有一个添加按钮,它必须增加项目数组长度,并显示两个字段,即“名称”和“数量” 因此,在更改任何字段后,我将在items数组中推送item details items = [ {name: "item 1", quantity: 1}, {name: "item 2", quantity: 1} ]; 首先,items数组将为空。单击“添加”按钮时,它应增加数组长度,然后将数量的默认值设置为1 我不知道如何实现add()来增加数组长度并设置数量的默认值 提前谢谢 试试这个: let coun

我有一个添加按钮,它必须增加项目数组长度,并显示两个字段,即“名称”和“数量”

因此,在更改任何字段后,我将在items数组中推送item details

 items = [ {name: "item 1", quantity: 1}, {name: "item 2", quantity: 1} ];
首先,items数组将为空。单击“添加”按钮时,它应增加数组长度,然后将数量的默认值设置为1

我不知道如何实现add()来增加数组长度并设置数量的默认值

提前谢谢

试试这个:

let counter = 1
let items = []

function setNewItem() {
    items.push({name: `item ${counter}`, quantity: 1})
    counter++
}

使用
Array.push在添加值后不会创建新数组。您可以在浏览器控制台中对此进行测试:

让arr=[]
让arrCopy=arr
arr.push(1)/[1]
arr===arrCopy//true
arr=[…arr,2]/[1,2]
arr===arrCopy//false

由于React在内部使用
==
来比较状态并决定重新渲染,如果使用arr.push({name:“item 3”,quantity:1}),UI将不会更新。相反,您需要在每次按下按钮(处理onClick事件)时创建一个新数组,复制旧值并添加新值。

如前所述,您可以创建一个方法并添加到现有数组中,并设置组件状态

class SomeComponent {
  constructor(){
    this.state.products =[]
  }
  onAddProduct(item) {
    this.setState({
      products: this.state.products.concat({name: item, quantity: 1})
    })
  }
  onAddProductByName(name) {
    this.setState({
      products: this.state.products.map(item => {
        if(item.name === name) item.quantity +=1 
        return item
      })
    })
  }
}

什么是应用程序??更多代码。。反应jquery??代码是什么请输入简单的代码。。为了解释你所做的,请把你的尝试写下来,并具体说明你的困境。人们会很乐意提供帮助。“它应该增加数组长度,然后将数量的默认值设置为1”您的意思是将字段
数量
的值设置为数组中所有项目的值吗?@xdeepakv我正在使用react