如何解决如何创建一个函数来检查对象 javascript 数组中的布尔字段
最终目标:如果所有字段都是true
,则最后一个对象。字段必须更改为true
const badges = [
{ name: "peter",given : true,points: 10 },{ name: "Alice",points: 100 },{ name: "Hugo",given: true,{ name: "Salah",given: false,points: 500 },{ name: "Rui",points: 1000 },{ name: "Jimena",points: 10000 }
]
我的代码:
const badges = [
{ name: "peter",points: 10000 }
]
let count = 0
badges.forEach((ele,index) => {
const l = badges.length
ele.given === true ? count = count + 1 : count
count == l - 1 ? badges[l - 1].given = true : badges[l - 1].given
})
console.log(badges)
我想要实现的目标:是一个更通用的功能,可以在任何地方工作,但我找不到方法或最简单的方法。
解决方法
只要提供的 field
是布尔值,这将起作用。利用 slice
获取除最后一个元素之外的所有内容,并使用 every
检查所有符合条件的元素。
const badges = [
{ name: "peter",given : true,points: 10 },{ name: "Alice",points: 100 },{ name: "Hugo",given: true,{ name: "Salah",points: 500 },{ name: "Rui",points: 1000 },{ name: "Jimena",given: false,points: 10000 }
]
function check(input,field) {
var result = input.slice(0,input.length-1).every(x => x[field]);
if(result) {
badges[input.length-1][field] = true;
}
}
check(badges,"given");
console.log(badges)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。