Ste*_*rey 2 javascript ecmascript-6
我想弄清楚为什么这会返回false:
var goodUsers = [
{ id: 1 },
{ id: 2 },
{ id: 3 },
];
var testUsers = [
{ id: 1 },
{ id: 2 },
{ id: 3 }
];
console.log(testUsers.every(testUser => {
goodUsers.some(goodUser => {
testUser.id === goodUser.id
})
}));Run Code Online (Sandbox Code Playgroud)
我认为我的问题在于我是如何在some里面筑巢的every.任何帮助,将不胜感激.谢谢!
你的回调.some和.every实际上没有返回任何东西.这就是你得到的原因false.
var goodUsers = [
{ id: 1 },
{ id: 2 },
{ id: 3 },
];
var testUsers = [
{ id: 1 },
{ id: 2 },
{ id: 3 }
];
console.log(testUsers.every(testUser => {
return goodUsers.some(goodUser => {
return testUser.id === goodUser.id
});
}));Run Code Online (Sandbox Code Playgroud)
做:有区别:
goodUser => testUser.id === goodUser.id
Run Code Online (Sandbox Code Playgroud)
和
goodUser => { testUser.id === goodUser.id; }
Run Code Online (Sandbox Code Playgroud)
第一个 - 没有 {} - 有隐含的 return.它返回表达式的值.它和做的一样:
goodUser => { return testUser.id === goodUser.id; }
Run Code Online (Sandbox Code Playgroud)
你正在使用{},它启动了一个语句块,并省略了return语句.
DOCS:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions
| 归档时间: |
|
| 查看次数: |
124 次 |
| 最近记录: |