如果这是一个重复的问题,我很抱歉;我不确定使用的术语(我认为它叫做“lambda”或类似的东西),所以我无法进行适当的搜索。
Python中的以下行:
a, b, c, d, e = [SomeFunc(x) for x in arr]
如何在Javascript中执行相同操作?
我从头开始:
let [a, b, c, d, e] = arr;
但我仍需要在SomeFunc
中的每个元素上调用arr
。
谢谢!!!
答案 0 :(得分:4)
近似将是使用数组方法map
。它使用一个函数对每个数组元素执行一个操作,并返回一个长度相同的新数组。
const add2 = (el) => el + 2;
const arr = [1, 2, 3, 4, 5];
let [a, b, c, d, e] = arr.map(add2);
console.log(a, b, c, d, e);

使用数组解构时要小心,以确保为返回的数组解析正确数量的元素。
答案 1 :(得分:3)
它在JavaScript中调用了.map(),您可以像这样使用它:
let arr = [1,2,3,4].map(someFunc);
和someFunc将被定义在其他地方,可能是:
function someFunc(x){ return ++x };
//or es6
let someFunc = x => ++x;
答案 2 :(得分:3)
你可以在这种情况下使用地图
function functionF(x){return x}
let [a, b, c, d, e] = arr.map(functionF);
答案 3 :(得分:0)
您正在寻找的术语是lambda functions。
这些类型的功能非常适合快速一次性计算。等效的javascript是map()
函数。对于您的具体情况,语法将是
let arr = some_array.map(x => { return SomeFunc(x); });
例如,声明
let arr = [1, 2, 8].map(num => { return num * 2; });
会将列表[2, 4, 16]
分配给变量arr
。
希望有所帮助!