在Javascript中,为什么长度属性位于结束标记之后
我在理解“length”属性的位置时遇到了一些困难,我正在制作一个作为JavaScript课程一部分的待办事项列表应用程序 待办事项列表:在Javascript中,为什么长度属性位于结束标记之后,javascript,Javascript,我在理解“length”属性的位置时遇到了一些困难,我正在制作一个作为JavaScript课程一部分的待办事项列表应用程序 待办事项列表: const todos = [{ text: 'First task', completed: true }, { text: 'Second task', completed: false }, { text: 'Third task', completed: true }] 我的问题: 下面的代码为我提
const todos = [{
text: 'First task',
completed: true
}, {
text: 'Second task',
completed: false
}, {
text: 'Third task',
completed: true
}]
我的问题:
下面的代码为我提供了仍然需要完成的全部任务。我不明白的是:为什么.length属性在结束“}”之后?我会假设代码是!todo.completed.length
,而不是!todo.completed})。长度
。我可以看出,只有后一种方法有效——但我正试图理解为什么。谢谢
let remaining = todos.filter(function(todo){
return !todo.completed
}).length
这是因为
Array.prototype.filter
返回一个数组
例如,这两个语句是等效的:
[1,2,3]。过滤器(函数(){
返回错误
}).长度
及
[]长度
这是因为:
[1,2,3]。过滤器(函数(){
返回错误
})
返回[]
varone=[1,2,3]。过滤器(函数(){
返回错误
})//从数组中删除所有元素
变量二=[]
console.log(一个,一个长度)
console.log(two,two.length)
这是因为Array.prototype.filter
返回一个数组
例如,这两个语句是等效的:
[1,2,3]。过滤器(函数(){
返回错误
}).长度
及
[]长度
这是因为:
[1,2,3]。过滤器(函数(){
返回错误
})
返回[]
varone=[1,2,3]。过滤器(函数(){
返回错误
})//从数组中删除所有元素
变量二=[]
console.log(一个,一个长度)
console.log(two,two.length)
首先:过滤器函数迭代每个todo对象,并返回一个新的todo对象列表
每个todo对象都会传递给作为参数提供的函数(在本例中为匿名函数),只有当该函数返回true时,todo对象才会添加到新列表中
既然您想知道仍需完成的待办事项数量,请返回!todo.completed,因为当todo.completed为false时,将返回true
当filter函数迭代每个对象时,它返回新的列表,此时您可以访问它的长度
回来!todo.completed.lenght实际上没有任何意义,因为您试图获取布尔值的长度,而筛选函数要求true或false。首先:筛选函数迭代每个todo对象并返回新的todo对象列表 每个todo对象都会传递给作为参数提供的函数(在本例中为匿名函数),只有当该函数返回true时,todo对象才会添加到新列表中 既然您想知道仍需完成的待办事项数量,请返回!todo.completed,因为当todo.completed为false时,将返回true 当filter函数迭代每个对象时,它返回新的列表,此时您可以访问它的长度
回来!todo.completed.lenght实际上没有任何意义,因为您正在尝试获取布尔值的长度,而筛选函数要求true或false。
length
属性仅适用于字符串和数组。您的数据类型为布尔值(true/false)。length
属性属于数组| JS中的字符串和数组的筛选方法为您返回一个新数组。获取新数组后,您可以使用长度来了解还剩多少个数组需要完成:)返回满足函数中条件的数组length
属性仅适用于字符串和数组。您的数据类型为布尔值(true/false)。length
属性属于数组| JS中的字符串和数组的筛选方法为您返回一个新数组。获取新数组后,使用长度来了解还剩多少个数组需要完成:)返回满足函数中条件的数组