如何创建一个javascript函数,该函数将接收类似JSON的对象作为参数,如下所示:
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
}
然后在 someObj 是您的 jsonfoo(someObj)
使用它。
如果对象中缺少某个属性,则按以下方式处理它:
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));