我有这个对象:
{label: "Name1", values: ["el0", "el1"]}
{label: "Name2", values: ["el0", "el1"]}
我需要从此对象和label
数组中捕获values
个值。所以我这样做:
$.each(obj, function(index, value){
if (index === "label"){
var labels = value;
}
// actions with data here
});
如果我在标签var undefined
之外执行我的操作,有人可以帮忙吗?
答案 0 :(得分:1)
如果您尝试访问对象上的属性,则不需要if语句。
objects.forEach(function(object){
var label = object.label;
//do stuff with label
});
对于您发布的代码,index
将始终返回一个整数值,因此它永远不会等于"label"
,并且永远不会为labels
赋值。 Javascript根据函数来定义事物,因此变量labels
可以在each
方法的回调中的任何位置访问。
由于变量提升,它甚至可以在定义之前访问,但值未定义。
答案 1 :(得分:0)
试试这个:
var labels = null;
$.each(obj, function(index, value){
if (index === "label"){
labels = value;
}
// actions with data here
// now you can use "labels" variable anywhere,
// because it has a global scope.
});
答案 2 :(得分:0)
我猜你需要array.push
var labels = [];
for (var i in obj)
labels.push(obj[i].label);
console.log(labels);
答案 3 :(得分:0)
insted使用$ .each,尝试直接访问label属性。
var labels = obj['label'];
或
var labels = obj.label;
如果您拥有的是阵列。试试这个。
var labels =[];
$.each(objs, function(i, item){
labels.push(item.label);
});