如何从javascript中的对象参数中获取密钥的名称

时间:2014-06-25 14:28:52

标签: javascript json javascript-objects

让我说我的功能看起来像这样:

function foo()
{
  console.log(arguments);  
}

foo(event_1="1", event_2="2");

在这种情况下,输出将是:

[object Arguments] {
 0: "1",
 1: "2"
 }

如何获取参数的键(event_1,event_2)而不是(0,1)?

4 个答案:

答案 0 :(得分:5)

与@ Robby的答案类似,您也可以使用Object.keys

function foo() {
  console.log(Object.keys(arguments[0]));
}

foo({event_1:"1", event_2: "2"});

答案 1 :(得分:4)

将您的参数作为对象传递,并遍历对象的属性名称:

function foo() {
  for (var key in arguments[0]) {
    console.log(key);
  }  
}

foo({event_1: "1", event_2: "2"});

答案 2 :(得分:1)

在这种情况下,0和1确实是参数的关键。对于event_1="1",您没有将键传递给函数,而是将值"1"赋给变量event_1,然后将值传递给函数。

如果您需要传递键/值对,则可以改为使用对象:

function foo(data)
{
    for (var key in data)
    {
        console.dir("key="+key+", value="+data[key]);
    }
}

foo({ first: "hello", second: "bye" });    

答案 3 :(得分:0)

我不知道这是否会对你有帮助,但你可以使用一个对象。像这样:

function foo(anobj)
{
  console.log(anobj.event_1, anobj.event_2);  
}

foo({event_1:"1", event_2:"2"});