这是从JS对象获取密钥和值的最佳方法:
function jkey(p){for(var k in p){return k;}}
function jval(p){for(var k in p){return p[k];}}
var myobj = {'Name':'Jack'};
alert(jkey(myobj)+' equals '+jval(myobj));
还是有更直接或更快的方式?
我需要做的是能够分别调用键名和值。函数工作并返回键名和值,我只是想知道是否有更小,更快,更好的方法。
这是一个更好的例子,我想访问密钥:值作为单独的变量,即{assistant:'XLH'},key = assistant,val ='XLH';
当我确定它是一对并且只返回一个键和值时,我才使用它。
formY={
tab:[
{
tabID:'Main',
fset:[
{
fsID:'Ec',
fields:[
{ec_id:'2011-03-002'},
{owner:'ECTEST'},
{assistant:'XLH'},
{ec_date:'14/03/2011'},
{ec_status:'Unreleased'},
{approval_person:'XYZ'},
]
}
]
}
]
}
答案 0 :(得分:1)
最好避免两次循环对象。你可以这样做:
function getKeyValue(obj) {
for(var key in obj) {
if(obj.hasOwnProperty(key)) {
return {key: key, value: obj[key]};
}
}
}
并将其命名为:
var kv = getKeyValue(obj);
alert(kv.key + ' equals ' + kv.value);
答案 1 :(得分:0)
要在一行代码中设置JSON中的对象,我喜欢使用jQuery的parseJSON方法。只需传入您的JSON字符串,它就会为您创建对象。然后你要做的就是使用你的obj.Property来访问任何值。
var myObj = '{"Name":"Jack"}';
var person = $.parseJSON(myObj);
alert(person.Name); // alert output is 'Jack'
答案 2 :(得分:0)
我发现你的问题有点不清楚,但我怀疑你在寻找:
var myobj = {'Name':'Jack'};
for(var k in myobj){
if (myobj.hasOwnProperty(k)) {
alert(k + ' equals ' + myobj[k]);
}
}