Javascript 如果值为true,则从循环中删除项

Javascript 如果值为true,则从循环中删除项,javascript,ecmascript-6,Javascript,Ecmascript 6,我不熟悉javascript,并循环浏览一个显示完整列表的列表,但是如果object属性的属性设置为true,我就不想显示它。我不知道如果循环,会发生什么,因为pop或delete不起作用 for (const user of users) { user.name = `${user.firstname}`; if (user.disabled === true) { /* not sure

我不熟悉javascript,并循环浏览一个显示完整列表的列表,但是如果object属性的属性设置为true,我就不想显示它。我不知道如果循环,会发生什么,因为pop或delete不起作用

for (const user of users) {
                user.name = `${user.firstname}`;
                if (user.disabled === true) {
                    /* not sure what to do here*/
                }
            }

如果您想要更高的性能,您可以使用

因为用户是一个数组,所以可以使用

users.filter(user => !user.disabled).forEach(user => user.name = user.firstName)
所以有一种方法可以过滤数组:若迭代数组中每个对象的函数的结果为false,那个么它将不会包含到结果数组中


迭代所有项目并允许更改每个项目。

如果您想要更高的性能,可以使用

因为用户是一个数组,所以可以使用

users.filter(user => !user.disabled).forEach(user => user.name = user.firstName)
所以有一种方法可以过滤数组:若迭代数组中每个对象的函数的结果为false,那个么它将不会包含到结果数组中


迭代所有项并允许更改每个项。

根据代码中显示的内容,我假设您有一个至少具有属性name、firstName和disabled的用户数组。 您可以使用ES6完全支持的方法过滤器从数组中删除不符合要检查的属性的对象。 为此,使用方法过滤器循环数组,检查属性disabled是否为false

常量用户=[ { 姓名:姓名1, 名字:名字1, 残疾人:对,, },{ 姓名:姓名2, 名字:名字2, 残疾人士:错,, }, ]; const usersFiltered=users.filteruser=>!用户禁用;
console.logusersFiltered 根据您在代码中显示的内容,我假设您有一个至少具有属性name、firstName和disabled的用户数组。 您可以使用ES6完全支持的方法过滤器从数组中删除不符合要检查的属性的对象。 为此,使用方法过滤器循环数组,检查属性disabled是否为false

常量用户=[ { 姓名:姓名1, 名字:名字1, 残疾人:对,, },{ 姓名:姓名2, 名字:名字2, 残疾人士:错,, }, ]; const usersFiltered=users.filteruser=>!用户禁用; console.logusersFiltered 您希望添加新的属性名称来创建新对象和新对象。 但是,您可以使用在同一迭代中过滤和映射对象,而不是在数组上循环两次

运行示例:

常量用户=[ {firstName:'john',disabled:false}, {firstName:'jane',disabled:true}, {firstName:'moe',disabled:false}, {firstName:'doe',disabled:true}, ]; const nextUsers=users.reduceresult,当前=>{ 如果!当前已禁用{ 结果:推{ 现在的 名称:current.firstName }; } 返回结果; },[]; console.lognextUsers 您希望添加新的属性名称来创建新对象和新对象。 但是,您可以使用在同一迭代中过滤和映射对象,而不是在数组上循环两次

运行示例:

常量用户=[ {firstName:'john',disabled:false}, {firstName:'jane',disabled:true}, {firstName:'moe',disabled:false}, {firstName:'doe',disabled:true}, ]; const nextUsers=users.reduceresult,当前=>{ 如果!当前已禁用{ 结果:推{ 现在的 名称:current.firstName }; } 返回结果; },[];
console.lognextUsers;代码块中没有显示任何内容。你是说它已经显示了,你想隐藏它吗?@JeffMatthews它是显示所有列表,但如果用户已禁用===true,我不想加载问题代码有什么问题吗?所以。。。你有另一个循环在某处进行显示,对吗?难道它不应该忽略被禁用的用户吗?我不确定此循环与您的问题有什么关系。您尚未指定如何使用此数组来显示任何内容。不清楚。你的代码块中没有显示任何内容。你是说它已经显示了,你想隐藏它吗?@JeffMatthews它是显示所有列表,但如果用户已禁用===true,我不想加载问题代码有什么问题吗?所以。。。你有另一个循环在某处进行显示,对吗?难道它不应该忽略被禁用的用户吗?我不确定此循环与您的问题有什么关系。您尚未指定如何使用此数组来显示任何内容。不清楚。Arrayfilter方法属于ES5。请参阅此链接:.Arrayfilter方法属于ES5。查看此链接:。@Nofel以上是您的问题答案吗?@Nofel以上是您的问题答案吗?