Kit*_*Kit 29 javascript unpack
我有以下字符串
output_string = "[10, 10, [1,2,3,4,5], [10,20,30,40,50]]"
Run Code Online (Sandbox Code Playgroud)
然后,我JSON.parse就
my_args = JSON.parse(output_string)
Run Code Online (Sandbox Code Playgroud)
我如何以类似Python的方式解压缩它,以便每个元素my_args成为JavaScript函数的参数?
some_javascript_function(*my_args)
// should be equivalent to:
some_javascript_function(my_args[0],my_args[1],my_args[2],my_args[3])
// or:
some_javascript_function(10, 10, [1,2,3,4,5], [10,20,30,40,50])
Run Code Online (Sandbox Code Playgroud)
是否有一个核心的JavaScript成语呢?
fbu*_*ger 40
一旦在数组中收集了函数参数,就可以使用apply()函数对象的方法来调用预定义的函数:
some_javascript_function.apply(this, my_args)
Run Code Online (Sandbox Code Playgroud)
第一个参数(this)设置被调用函数的上下文.
ife*_*aju 29
你可以通过这样做来实现这一目标
some_javascript_function(...my_args)
这称为spread操作(unpacking在python中).在这里查看文档https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Spread_operator
jos*_*ell 11
与接受无限参数的方式相同,您可以解压缩它们。
let vals = [1, 2, 'a', 'b'];
console.log(vals); // [1, 2, "a", "b"]
console.log(...vals); // 1 2 "a" "b"
Run Code Online (Sandbox Code Playgroud)
它会变成一个数组
const someFunc = (...args) => {
console.log(args); // [1, 2, "a", "b"]
console.log(args[0]); // 1
console.log(...args); // 1 2 "a" "b"
}
someFunc(1, 2, 'a', 'b');
Run Code Online (Sandbox Code Playgroud)
const someFunc = (num1, num2, letter1, letter2) => {
console.log(num1); // 1
console.log(letter1); // "a"
}
let vals = [1, 2, 'a', 'b'];
someFunc(...vals);
Run Code Online (Sandbox Code Playgroud)
发送参数
| 归档时间: |
|
| 查看次数: |
12849 次 |
| 最近记录: |