我正试着转过来
_.forEach(dataset, function(items) {
_.forEach(items, function(item) {
for (var key in item) {
if (key.indexOf('XX') === 0) {
var toJsonVar = item[key];
parseString(toJsonVar, function(err, res) {
item[key] = res;
});
}
}
});
});
你可能会看到我在前两个范围内有来自lodash的_.forEach
,但在第三个范围内我有一个for in
循环,我试图转换为lodash但是我收到一个错误。
_.forEach(item, function(key)) {
if (key.indexOf('XX') === 0) {
var toJsonVar = item[key], toJsonRes;
parseString(toJsonVar, function(err, res) {
item[key] = res;
});
});
我有尝试的方式,我做错了什么?
错误说
TypeError:undefined不是函数
并且错误行是
if (key.indexOf('XX') === 0) {
答案 0 :(得分:4)
问题在于,当您使用for (var key in item) {
时,key
实际上是对象的键,但是在lodash _.forEach
中,第一个参数是对象中的值。试试这个......
_.forEach(item, function(toJsonVar, key)) {
if (key.indexOf('XX') === 0) {
parseString(toJsonVar, function(err, res) {
item[key] = res;
});
}
});
不再需要使用var toJsonVar = item[key]
查找值,因为lodash已将其作为第一个参数传递给您的回调