如何解决验证属性值在数组的所有对象中是否为false,并从数组的前三个最大对象中选取属性值
我有一个带有属性的对象数组
let array = [{value: "None",selected: false,name: "None"},{value: "sample utternace",name: "sample utternace"},{value: "sample",name: "sample"}]
-
如果所有对象的“ selected”属性为“ false”,则需要从这些对象数组中进行验证。
-
如果是,那么我需要最多选择前三个属性的“值”值,如果没有“无”值的话。
-
如果数组大小小于属性“ value”的至少2个值,则应选择属性“ value”的最多3个值
尝试:
let newArray = [];
let sendValues: boolean;
for (let i = 0; i < array.length; i++) { // validate if all no value selected
if (array[i].selected === true) {
sendValues = true;
break;
} else {
break;
}
}
if (sendValues) {
} else {
for (let i = 0; i < 4; i++) {
if (array[i].value === "None") {
newArray.push();
} else {
newArray.push(array[i].value);
}
}
}
}
解决方法
第1部分:
let array = [{value: "None",selected: false,name: "None"},{value: "sample utternace",name: "sample utternace"},{value: "sample",name: "sample"}]
console.log(array.every(({selected}) => !selected)); // test all have false
第2部分
let array = [{value: "None",name: "sample"}]
if (array.every(({selected}) => !selected) ) {
console.log(array.filter( ({value}) => value !="None")); // filter on value=None
}
第3部分
let array = [{value: "None",{value: "sample utterance1",name: "sample utterance1"},{value: "sample utterance2",name: "sample utterance2"},{value: "sample utterance3",name: "sample utterance3"},name: "sample"}]
const getSample = array => {
let arr = [];
if (array.every(({ selected }) => !selected)) {
arr = array.filter( ({ value }) => value != "None")
if (arr.length >= 3) return arr.slice(0,3)
}
return []; // or some other size
};
console.log(getSample(array))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。