Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 洛达斯的游击队似乎无所作为_Javascript_Lodash - Fatal编程技术网

Javascript 洛达斯的游击队似乎无所作为

Javascript 洛达斯的游击队似乎无所作为,javascript,lodash,Javascript,Lodash,(我找不到Lodash Slack频道,这就是我在这里发帖的原因。) 你能告诉我为什么这里面的部分似乎什么都没做吗?correctRenameKeys函数可以正确重命名所提供的对象中的键,但是ErrorRenameKeys函数不能正确重命名键,该函数的作用应该完全相同 请在浏览器中打开JavaScript控制台,以便在运行fiddle时查看日志。我用铬做了测试 const renameKeysOfOneObject=(对象,键映射)=>{ 返回u.reduce(对象、函数(结果、值、键){ 键

(我找不到Lodash Slack频道,这就是我在这里发帖的原因。)

你能告诉我为什么这里面的
部分似乎什么都没做吗?
correctRenameKeys
函数可以正确重命名所提供的
对象中的键,但是
ErrorRenameKeys
函数不能正确重命名键,该函数的作用应该完全相同

请在浏览器中打开JavaScript控制台,以便在运行fiddle时查看日志。我用铬做了测试

const renameKeysOfOneObject=(对象,键映射)=>{
返回u.reduce(对象、函数(结果、值、键){
键=键映射[键]| |键;
结果[键]=值;
返回结果;
}, {});
};
常量correctRenameKeys=(对象、键映射)=>{
const keysRenamer=object=>renameKeysOfOneObject(对象,键映射);
返回映射(对象、键重命名器);
};
常量错误重命名键=(对象、键映射)=>{
const keysRenamer=u2;.partiOK(renameKeysOfOneObject,keyMappings);
返回映射(对象、键重命名器);
};
const object={keyToBeRenamed:'someValue'};
const objects=[object];
const keyMapping={keyToBeRenamed:'newKeyName'};
const correctLyrename=correctRenameKeys(对象、键映射);
const-ErrorLyrename=ErrorRenameKeys(对象、键映射);
console.assert(u.isEqual(correctlyRenamed,errorlyrename),
“这两个对象应该相等。”+
“应将'KeyToBernamed'密钥重命名为'newKeyName'”;
console.log(已更正的Lyrename);
console.log(错误地使用了lyrename)

lodash文档中有两个支持性陈述可以回答您的问题:

此方法类似于u.partial,只是部分应用了参数 附加到它接收的参数中

通过运行集合中的每个元素创建一个值数组 迭代尔。使用三个参数调用iteratee:(值, 索引(键,集合)

请注意,在
lodash#map
iteratee中传递了三个参数,由于
keyRenamer
作为iteratee传递,因此我们可以推断调用签名如下所示:

keyRenamer(value, index, collection, keyMappings);
如果您确实希望实现部分应用函数
renameKeysOfOneObject
的第二个参数的效果,请使用

const renameKeysOfOneObject=(对象,键映射)=>{
返回u.reduce(对象、函数(结果、值、键){
键=键映射[键]| |键;
结果[键]=值;
返回结果;
}, {});
};
常量correctRenameKeys=(对象、键映射)=>{
const keysRenamer=object=>renameKeysOfOneObject(对象,键映射);
返回映射(对象、键重命名器);
};
常量错误重命名键=(对象、键映射)=>{
const keysRenamer=0.partial(renameKeysOfOneObject,0,keyMappings);
返回映射(对象、键重命名器);
};
const object={keyToBeRenamed:'someValue'};
const objects=[object];
const keyMapping={keyToBeRenamed:'newKeyName'};
const correctLyrename=correctRenameKeys(对象、键映射);
const-ErrorLyrename=ErrorRenameKeys(对象、键映射);
console.assert(u.isEqual(correctlyRenamed,errorlyrename),
“这两个对象应该相等。”+
“应将'KeyToBernamed'密钥重命名为'newKeyName'”;
console.log(已更正的Lyrename);
console.log(错误地使用了lyrename)
。作为控制台包装{最小高度:100%;顶部:0}
const wrongRenameKeys = (objects, keyMappings) => {
    const keysRenamer = _.partial(renameKeysOfOneObject, _, keyMappings);
    return _.map(objects, keysRenamer);
};