如何在Javascript中从此关联数组中获取值? 我只需要电子邮件地址而不是标签。
(
{
office = ("my@email.com");
home = ("ahome@anotheremail.com");
work = ("nothing@email.com");
},
{
home = ("test@test.se");
}
)
更新:JSON中的首选输出为:
{
"data": [
{
"email": "my@email.com"
},
{
"email": "ahome@anotheremail.com"
},
{
"email": "nothing@email.com"
},
{
"email": "test@test.se"
}
] }
感谢所有输入!
答案 0 :(得分:4)
你可能想做的是:
var x = [{
office: ("my@email.com"),
home: ("ahome@anotheremail.com"),
work: ("nothing@email.com")
},
{
home: ("test@test.se")
}]
和
for(var j = 0; j < x.length; j++)
{
for(var anItem in x[j])
{
console.log(x[j][anItem])
}
}
//编辑: 但是,it's not the best practice用于... in。
也许您可以将数据结构更改为:
var x = [[{
value: "my@email.com",
type: "office"
},
{
value: "ahome@anotheremail.com",
type: "home"
},
{
value: "nothing@email.com",
type: "work"
}],
[{
value: "test@test.se",
type: "home"
}]];
并迭代使用:
for( var i = 0, xlength = x.length; i < xlength; i++ )
{
for( var j=0, ylength = x[i].length; j < ylength; j++ )
{
console.log(x[i][j].value);
}
}
答案 1 :(得分:1)
你可以'foreach'对象来获取它的属性:
for(var j = 0; j < mySet.length; j++)
{
for(var propName in mySet[j])
{
var emailAddress = mySet[j][propName];
// Do Stuff
}
}
答案 2 :(得分:0)
回答编辑过的问题:
var ret = {data: []};
for(var j = 0; j < x.length; j++)
{
for(var anItem in x[j])
{
ret.data.push({
email: x[j][anItem]
});
}
}
console.log(ret);
结果保存在ret
。
答案 3 :(得分:0)
这里是单线:
console.log(Object.keys(assoc).map(k => assoc[k]));
其中var assoc = // your associative array
。
答案 4 :(得分:0)
您是以JSON格式输入的吗?因为如果是这样,那是错误的语法。但是
let _in = [
{
office : "my@email.com",
home : "ahome@anotheremail.com",
work : "nothing@email.com",
},
{
home : "test@test.se"
}
]
let _out = []
_in.forEach( record => {
_out = _out.concat(Object.values(record).map(x => new Object({email : x})))
})
console.log(_out)
对于每条记录,我提取值并将其“打包”到带有“电子邮件”属性的对象中,然后合并从原始记录数组中获得的所有那些数组
答案 5 :(得分:0)
您似乎正在寻找Object.values
。