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变量作为数组的原因