如何在JavaScript中通过多标志位动态修改数组内容
多标志位控制JavaScript数组内容的实现方案
修正语法错误并实现需求
原代码存在括号不匹配的语法问题,同时需要加入flag2的判断逻辑来控制是否保留text: "bbbb"的对象。以下是修正后的完整代码:
export const sample = (flag1, flag2) => { const sampleValue = [ { text: "aaaa", name: "aaaaaaaa" }, { text: "bbbb", name: "bbbbbbbb" }, { text: "cccc", name: "cccccccc" }, ]; // 根据flag2过滤数组:仅当flag2为true时保留"bbbb"的对象 const baseArray = sampleValue.filter(item => { if (item.text === "bbbb") { return flag2; } return true; }); // 根据flag1决定是否添加"ddddd"的对象 return flag1 ? [...baseArray, { text: "ddddd", name: "dddddddd" }] : baseArray; }
逻辑说明
- flag2的作用:通过
filter方法遍历原数组,遇到text为"bbbb"的对象时,仅在flag2为true时保留该对象,其余对象默认保留。 - flag1的作用:基于处理完
flag2后的数组,判断是否追加text: "ddddd"的对象。 - 语法修正:修复了原代码中三元运算符的括号嵌套错误,同时将
flag1和flag2作为函数参数传入(需确保调用函数时传入对应布尔值)。
内容的提问来源于stack exchange,提问作者Sophia
相关产品推荐
相关产品推荐

