当函数与解构一起使用时返回正确的预期值:
[{"k":"key1","v":"val1"},{"k":"key2","v":"val2"},{"k":"key3","v":"val3"}]
console.log(JSON.stringify([{
k: 'key1',
v: 'val1',
z: 'z1'
}, {
k: 'key2',
v: 'val2',
z: 'z2'
}, {
k: 'key3',
v: 'val3',
z: 'z3'
}].map(function(x) {
let {k, v} = x;
return {k, v };
})));
但是,当 lambda 函数与解构一起使用时,返回错误的值:
[{"k":"key1","v":"val1","z":"z1"},{"k":"key2","v":"val2","z":"z2"},{"k":"key3","v":"val3","z":"z3"}]
console.log(JSON.stringify([{
k: 'key1',
v: 'val1',
z: 'z1'
}, {
k: 'key2',
v: 'val2',
z: 'z2'
}, {
k: 'key3',
v: 'val3',
z: 'z3'
}].map(x =>
({k, v} = x) )));
我将如何在 lambda 函数内部使用解构,使其返回与使用显式相同的结果function()
above?
您可以在回调的参数内部使用解构Array#map https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
let array = [{ k: 'key1', v: 'val1', z: 'z1' }, { k: 'key2', v: 'val2', z: 'z2' }, { k: 'key3', v: 'val3', z: 'z3' }];
console.log(array.map(({ k, v }) => ({ k, v })));
.as-console-wrapper { max-height: 100% !important; top: 0; }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)