Javascript 如何在单击“添加”按钮时增加现有数组的长度
我有一个添加按钮,它必须增加项目数组长度,并显示两个字段,即“名称”和“数量” 因此,在更改任何字段后,我将在items数组中推送item detailsJavascript 如何在单击“添加”按钮时增加现有数组的长度,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 = [ {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