我有一串javascript对象需要转换为函数参数。
字符串如下所示:
"{ "item1": "foo 1", "item2": "bar 1" }, { "item1": "foo 1", "item2": "bar 2" }"
我可以结束" []"并调用JSON.parse将其转换为有效数组,但这并不能解决我的问题,因为函数需要它们是单独的对象而不是对象数组。
EX:
functionCall({ "item1": "foo 1", "item2": "bar 1" }, { "item1": "foo 1", "item2": "bar 2" });
我永远不会知道这个字符串中有多少个对象,所以我不知道函数应该接受多少个参数。
我希望能够将多个对象添加到一个变量中,如:
var objects = { "item1": "foo 1", "item2": "bar 1" }, { "item1": "foo 1", "item2": "bar 2" }
然后我可以打电话
functionCall(objects);
有没有办法可以完成这样的事情或我可以采取的另一种方法?
答案 0 :(得分:1)
您可以使用 Function.prototype.apply()
:
functionCall.apply(window, objects);
(将window
替换为您希望具有此功能的范围。)
第二个参数是一个对象数组,所以继续将对象放在一个数组中,然后使用apply
。
答案 1 :(得分:1)
您可以使用Function.prototype.apply
将数组转换为函数参数:
functionCall.apply(null, objects);
初始null
参数是函数的this
参数;如果您没有调用对象方法,则不需要它,null
可以用作占位符。