带有标题的数组的javascript过滤器
我有以下使用Chrome的代码带有标题的数组的javascript过滤器,javascript,Javascript,我有以下使用Chrome的代码 <script> var arr = [{ "id": 1, "fn": "bill", "ln": "blogs" }, { "id": 2, "fn": "jim", "ln": "jones" }, { "id": 3, "fn": "bill", "ln": "smith" }]; var lookFor = "bill"; var result = arr.filter(
<script>
var arr = [{
"id": 1,
"fn": "bill",
"ln": "blogs"
}, {
"id": 2,
"fn": "jim",
"ln": "jones"
}, {
"id": 3,
"fn": "bill",
"ln": "smith"
}];
var lookFor = "bill";
var result = arr.filter(function(item) {
return if (item.ln == lookFor) return true;
});
alert(result.length);
alert(result[0]["id"] + result[0]["fn"] + result[0]["ln"]);
</script>
我试图过滤数组并返回第一个名字fn是bill的数组。在messagebox中返回id、fn和ln
我可能缺少一些关于这个语法的知识。试试这个
var result = arr.filter(function(item) {
return item.fn === lookFor;
});
…返回第一个名字fn为bill的名称
但在代码中使用item.ln。还有,为什么要使用双返回语句
return if (item.ln == lookFor) return true;
你只需要返回真或假,你可以这样做
return item.fn === lookFor;
如果item.fn等于lookfort,则为true,否则为false
你应该使用
var arr = [{
"id": 1,
"fn": "bill",
"ln": "blogs"
}, {
"id": 2,
"fn": "jim",
"ln": "jones"
}, {
"id": 3,
"fn": "bill",
"ln": "smith"
}];
var lookFor = "bill";
var result = arr.filter(function(item) {
return item.ln === lookFor;
});
alert(result.length);
alert(result[0]["id"] + result[0]["fn"] + result[0]["ln"]);
但是我猜你想要的不是ln,而是fn,因为他们的ln不等于bill。为什么在同一行中有多个return?正确的语法应该是return item.ln==lookfort。如果某个东西返回真的或者返回假的,那么就永远不需要了——它总是可以用简单的返回来重放!!如果表达式总是导致布尔值,则返回某个值或返回某个值;是的,我的意思是fn。谢谢你的===和摆脱如果工作