如何创建一个将接收类似于JSON的对象作为参数的javascript函数,如下所示:
function foo() {
//handle args somehow
}
然后可以这样称呼它:
var someObj = {
arg1: "some",
arg2: "thing",
options: {
opt1: "asd",
opt2: false
}
}
foo(someObj);
此外,如何处理未发送给函数的参数(在这种情况下,省略opt2):
var someObj = {
arg1: "some",
arg2: "thing",
options: {
opt1: "asd",
//opt2: false
}
}
foo(someObj);
谢谢。
您的问题与JSON无关。这些是常规的JavaScript对象文字。
如果您的函数需要参数,通常要做的就是这样定义您的函数:
function foo(obj) {
}
从那里,您可以像访问其他对象一样访问该对象的属性。
function foo(obj) {
console.log(obj.options.opt1);
}
如下定义功能:
function foo(obj) {
//handle args somehow
}
然后使用它foo(someObj)
,其中someObj是您的json。
如果对象中缺少属性,则按以下方式处理它:
if (obj.options.opt2)
{
console.log('opt2 is available');
}
else
{
console.log('opt2 is not available');
}
如果需要处理参数对象,例如删除值为false的键,则可以使用以下方法foo
,该方法获取对象并在删除后返回对象。
const foo = obj => ({
...obj,
options: Object.fromEntries(
Object.entries(obj.options).filter(([, value]) => value)
)
});
var someObj = {
arg1: "some",
arg2: "thing",
options: {
opt1: "asd",
opt2: false
}
};
console.log(foo(someObj));