我想替换下面的代码,不再依赖 underscore.js 或 lodash.js 的 _.each()
函数:
function fset(data) {
_.each(dataDefault, function(item, key) {
var val = ( data[key] ? data[key] : dataDefault[key] );
$rootScope.meta[key] = val;
});
};
理想情况下,我想使用普通的 JavaScript for 循环,但我不明白 underscore/lodash 中的 _.each()
函数如何替换它...
类似于:
for(var i=0; i<data.length;i++) {
var val = ( data[key] ? data[key] : dataDefault[key] );
$rootScope.meta[key] = val;
}
但是,我不知道如何通过这种方式获取 key 和项目...
dataDefault
看起来像:
var dataDefault = {
title: null,
description: null
};
调用该函数的示例是:
meta.fset({
title: 'Hello world',
description: 'DESC'
});
最佳答案
试试这个:
Object.keys(dataDefault).forEach(function (key) {
var value = dataDefault[key]
// iteration code
})
对于 for..in,您必须使用 hasOwnProperty 来排除继承属性。
关于javascript - 用普通的 for 循环替换下划线或 lodash _.each,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28438878/