如何在Excel数组中筛选含氯有机化合物并生成无无效值的新数组?
问题解决思路
你现在的问题根源是遍历逻辑里,不管化合物是否含氯,都往结果数组里塞了值——符合条件塞化合物名,不符合就塞"no"。要实现只保留含氯化合物的需求,只需要改一点:
- 遍历每个化合物时,先做含氯判断
- 只有符合条件的项,才添加到新数组里
- 不符合的直接跳过,啥也不用加
举个代码例子(拿JS举例,其他语言逻辑一致):
// 错误写法(会出现"no")
function getChlorineCompounds(list) {
let res = [];
for (let comp of list) {
if (comp.includes('Cl')) {
res.push(comp);
} else {
res.push('no'); // 就是这行导致多余的"no"
}
}
return res;
}
// 正确写法(只保留目标项)
function getChlorineCompounds(list) {
let res = [];
for (let comp of list) {
if (comp.includes('Cl')) {
res.push(comp);
// 不符合的情况啥也不做,直接循环下一个
}
}
return res;
}
要是用数组内置的筛选方法更省事,比如JS里的filter:
const filteredCompounds = compoundList.filter(comp => comp.includes('Cl'));
核心逻辑就是:只把符合条件的元素加入结果集,不符合的直接忽略,不要给它们分配任何值塞进数组。
内容的提问来源于stack exchange,提问作者Ryan_C
相关产品推荐
相关产品推荐

