【发布时间】:2017-04-10 13:13:11
【问题描述】:
我有以下函数,它接收一个 JSON 数组模板并返回一个 JSON 对象。
代码执行console.log。但是,它总是在函数末尾返回 null。有什么想法吗?
function getTemplate(templates, myId) {
Object.keys(templates).some(obj => {
if (templates[obj].id === myId) {
console.log('HELLO');
return templates[obj];
}
});
return null;
}
模板数组
[
{
"id": 80,
"name": "template 1"
},
{
"id": 81,
"name": "template 2"
}
]
但是,它总是返回 null。
【问题讨论】:
-
return templates[obj];肯定会在.some(function)的上下文中返回 -
.some不是在数组中查找特定条目的正确方法。 -
@George:是的,它会返回一个真实值给
.some函数,它会告诉你正确的模板存在,最后只给return null。 -
@Cerbrus 那么我该如何返回该值呢?
-
@Cerbrus
.find()是首选,因为它会在找到值时停止迭代,而.filter()不会。
标签: javascript arrays json node.js