Javascript 对象值仅在数组的第一个元素中增加
我正在制作一个简单的库存应用程序,当我增加库存时,我会被卡住。如果我尝试增加库存,它只对第一个元素有效,而不是对任何其他元素有效,如果我尝试增加任何其他元素库存,它会再次增加数组第一个元素的库存Javascript 对象值仅在数组的第一个元素中增加,javascript,arrays,object,element,Javascript,Arrays,Object,Element,我正在制作一个简单的库存应用程序,当我增加库存时,我会被卡住。如果我尝试增加库存,它只对第一个元素有效,而不是对任何其他元素有效,如果我尝试增加任何其他元素库存,它会再次增加数组第一个元素的库存 仅增加数组第一个元素的值 如果我选择任何其他项目代码,它将再次选择第一个元素并增加第一个元素中的值 //产品的构造函数 var项目=功能(名称、项目代码、库存){ this.name=名称; this.itemCode=itemCode; 这个。股票=股票; } var数据=[]; 函数附加项(名称、
//产品的构造函数
var项目=功能(名称、项目代码、库存){
this.name=名称;
this.itemCode=itemCode;
这个。股票=股票;
}
var数据=[];
函数附加项(名称、项目代码、库存){
if(data.map(i=>i.itemCode).includes(itemCode))返回警报('输入重复的itemCode'),menu();
var Newitem=新项目(名称、项目代码、库存);
数据推送(Newitem);
}
//删除项目
函数delItem(n){
if(data.map(i=>i.itemCode).includes(n)){
var getIndex=data.indexOf(n)+1;
data.pop(getIndex);
}否则{
警报('此项目不在数据库中')
}
}
//增加库存
item.prototype.inc=功能(j){
返回this.stock=this.stock+j;
}
函数m(n,val){
if(data.map(i=>i.itemCode).includes(n)){
var getIndex=data.indexOf(n)+1;
设lmn=data[getIndex].inc(val);
返回lmn;
}否则{
警报('此项目不在数据库中')
}
}
附加项(“蓝T恤”,100,50);
附加项(“黄色T形”,101100);
附加条款('BrownTee',102120)代码>您将问题复杂化了。例如,您可以使用获取数组中的第一个元素,然后通过val
增加它的stock属性,类似于:
数据=[
{名称:“BlueTee”,项目代码:100,库存:50},
{名称:“黄色T恤”,项目代码:101,库存:100},
{名称:“布朗特”,项目代码:102,库存:120},
];
函数m(n,val){
让item=data.find((p)=>p.itemCode==n);
如果(项目){
item.stock+=val;
退货项目;
}否则{
log(“此项不在数据库中”);
}
}
控制台日志(煽动(102,5));
煽动(666,10)代码>您将问题复杂化了。例如,您可以使用获取数组中的第一个元素,然后通过val
增加它的stock属性,类似于:
数据=[
{名称:“BlueTee”,项目代码:100,库存:50},
{名称:“黄色T恤”,项目代码:101,库存:100},
{名称:“布朗特”,项目代码:102,库存:120},
];
函数m(n,val){
让item=data.find((p)=>p.itemCode==n);
如果(项目){
item.stock+=val;
退货项目;
}否则{
log(“此项不在数据库中”);
}
}
控制台日志(煽动(102,5));
煽动(666,10)
如果你真的在学习类
的基本知识,方法
。查找数组。查找实现
在给定的代码下面,您可以将其称为代码的小清理
类项目{
构造函数(名称、项目代码、库存){
this.name=名称;
this.itemCode=itemCode;
这个。股票=股票;
this.list=[];
}
公司(n){
退货(本次库存+=n);
}
}
类别项目清单{
构造函数(){
this.list=[];
}
附加项(名称、项目代码、库存){
const item=this.list.find((item)=>item.itemCode==itemCode);
如果(项目)返回警报(“您输入了重复的项目代码”),菜单();
此.list.push(新项目(名称、项目代码、库存));
}
芬丹公司(北,瓦尔){
const item=this.list.find((item)=>item.itemCode==val);
如果(项目){
项目公司(n);
退货项目;
}否则{
警报(“此项不在数据库中”);
}
}
}
const inventory=新项目库存();
清单.增补(“蓝铁”,101,50);
存货.补充(“黄色T型”,102,38);
存货.补充(“Brown tee”,103,89);
console.log(inventory.list);
findAndInc(5101);
console.log(inventory.list)
如果你真的在学习类
的基本知识,方法
。查找数组。查找实现
在给定的代码下面,您可以将其称为代码的小清理
类项目{
构造函数(名称、项目代码、库存){
this.name=名称;
this.itemCode=itemCode;
这个。股票=股票;
this.list=[];
}
公司(n){
退货(本次库存+=n);
}
}
类别项目清单{
构造函数(){
this.list=[];
}
附加项(名称、项目代码、库存){
const item=this.list.find((item)=>item.itemCode==itemCode);
如果(项目)返回警报(“您输入了重复的项目代码”),菜单();
此.list.push(新项目(名称、项目代码、库存));
}
芬丹公司(北,瓦尔){
const item=this.list.find((item)=>item.itemCode==val);
如果(项目){
项目公司(n);
退货项目;
}否则{
警报(“此项不在数据库中”);
}
}
}
const inventory=新项目库存();
清单.增补(“蓝铁”,101,50);
存货.补充(“黄色T型”,102,38);
存货.补充(“Brown tee”,103,89);
console.log(inventory.list);
findAndInc(5101);
console.log(inventory.list)代码>你可以考虑提供一个更有用的片段——代码在SNIPPETI内部不起作用,只需简单地构造对象并将对象添加到数据数组中,现在我想动态地增加值,所以我创建了一个函数,因为这个var项=函数(name,ItMe码,Stand){NET.No.= name;Test.ItMeCase= ItMeCal码;St.St=股票;}您可以考虑提供一个更有用的SnpPET哪种代码?代码在SNIPPETI内部不起作用,只需简单地构造对象并将该对象添加到数据数组中,现在我想动态地增加值,所以I CR。