Javascript 在数组中推送记录时获取未定义
我试图将值推送到关联数组,但推的时候得到定义 因此,当我将多条记录推入我的Javascript 在数组中推送记录时获取未定义,javascript,Javascript,我试图将值推送到关联数组,但推的时候得到定义 因此,当我将多条记录推入我的arr变量时,如下所示: var obj = { name: 'abc',value : 0}; var obj = { name: 'pqr',value : 1}; var obj = { name: 'lmn',value : 2}; var name = "abc"; arr[name]; 假设我想得到abc的价值,那么我可以得到如下结果: var obj = { name: 'abc',value : 0};
arr
变量时,如下所示:
var obj = { name: 'abc',value : 0};
var obj = { name: 'pqr',value : 1};
var obj = { name: 'lmn',value : 2};
var name = "abc";
arr[name];
假设我想得到abc的价值,那么我可以得到如下结果:
var obj = { name: 'abc',value : 0};
var obj = { name: 'pqr',value : 1};
var obj = { name: 'lmn',value : 2};
var name = "abc";
arr[name];
演示:
var obj={name:'abc',值:0};
var-arr=[];
arr[obj.name].push({
关键字:obj.value
});
控制台日志(arr)代码>不要推送到数组,放入对象中
var obj= {
abc:0,
pqr:1
};
alert(obj.abc);
obj["lnm"]=2;
alert(obj.lnm);
不要推到数组中,放入对象中
var obj= {
abc:0,
pqr:1
};
alert(obj.abc);
obj["lnm"]=2;
alert(obj.lnm);
尝试此操作。将arr
声明为object
而不是array
。因为数组不是键值对。并且arr[obj.name]=[]
声明arr[obj.name]
带数组。然后只将对象推到array
var obj={name:'abc',值:0};
var arr={};
arr[obj.name]=[];
arr[obj.name].push({
关键字:obj.value
});
控制台日志(arr)
尝试此操作。将arr
声明为对象,而不是array
。因为数组不是键值对。并且arr[obj.name]=[]
声明arr[obj.name]
带有数组。然后只将对象推到array
var obj={name:'abc',值:0};
var arr={};
arr[obj.name]=[];
arr[obj.name].push({
关键字:obj.value
});
控制台日志(arr)代码>您需要一个带有数组的对象
var记录={}//保存键及其值数组
函数插入记录(obj){
records[obj.name]=records[obj.name]| |[];//如果我们没有看到密钥,请设置它
记录[obj.name].push(obj.value);//添加新值
}
插入记录({
姓名:“abc”,
数值:0
});
插入记录({
名称:“pqr”,
价值:1
});
插入记录({
名称:'lmn',
价值:2
});
插入记录({
姓名:“abc”,
价值:5
});
插入记录({
姓名:“abc”,
数值:10
});
log(记录[“abc”])
您需要一个带有数组的对象
var记录={}//保存键及其值数组
函数插入记录(obj){
records[obj.name]=records[obj.name]| |[];//如果我们没有看到密钥,请设置它
记录[obj.name].push(obj.value);//添加新值
}
插入记录({
姓名:“abc”,
数值:0
});
插入记录({
名称:“pqr”,
价值:1
});
插入记录({
名称:'lmn',
价值:2
});
插入记录({
姓名:“abc”,
价值:5
});
插入记录({
姓名:“abc”,
数值:10
});
console.log(records[“abc”])
您在这里试图做的是(如果我是对的!)将对象的值添加到数组中,并将数组索引作为对象。name
为此,有一个函数array\u push()
。
比如,array\u push($array[obj.name],obj.value)代码>
或者您可以使用$data[$key]=$value代码>直线。
比如,arr[obj.name]=obj.value代码>
希望有帮助。您在这里尝试的是(如果我是对的!)将对象的值添加到数组中,数组索引作为对象。name
为此,有一个函数array\u push()
。
比如,array\u push($array[obj.name],obj.value)代码>
或者您可以使用$data[$key]=$value代码>直线。
比如,arr[obj.name]=obj.value代码>
希望有帮助。对于初学者,您正在构建一个关联数组,即。物体。为此,使用var arr=[]
是不正确的。使用var-map={}代码>。然后,只需执行map[obj.name]=obj.value代码>。完成了。<代码> var Obj= < /代码>三次?@ EpasCall Loo:考虑我必须推3个值为0、1、2的记录,这只是一个例子。为什么你不把它作为你的演示??下流者这个问题有什么问题。请你解释一下,因为我尝试了一些东西,它没有工作,所以我张贴了。你发现了什么错误?首先,您正在构建一个关联数组,aka。物体。为此,使用var arr=[]
是不正确的。使用var-map={}代码>。然后,只需执行map[obj.name]=obj.value代码>。完成了。<代码> var Obj= < /代码>三次?@ EpasCall Loo:考虑我必须推3个值为0、1、2的记录,这只是一个例子。为什么你不把它作为你的演示??下流者这个问题有什么问题。请你解释一下,因为我尝试了一些东西,它没有工作,所以我张贴了。你发现了什么错误?问题但是如果我想有多个记录,比如abc、pqr和xyz的值分别为0,1,2,你会怎么做呢?这就是为什么我把arr变量作为数组的原因,但是如果我想有多个记录,比如abc、pqr和xyz的值分别为0,1,2,你会怎么做呢?这就是为什么我把arr变量作为数组的原因