javascript - JavaScript:无法让 .push() 命令按预期工作
问题描述
我正在尝试创建一个函数,该函数循环遍历索引中的每个项目,并在遇到某个项目时记录下某个项目的索引。在这个函数中,当在循环中遇到“违禁品”项时,会注意到添加了索引,并且我编写的 .push() 命令应该将每个新索引附加到一个名为“违禁品索引”的空值中。但是,该命令或代码的其他部分未按预期工作,因为当我通过示例数组运行该函数时,它返回一个空数组。
我在这里哪里做错了?
function scan(freightItems) {
let contrabandIndexes = [];
freightItems.forEach(function(freightItem) {
if (freightItem === 'contraband') {
contrabandIndexes.push();
}
});
return contrabandIndexes;
}
const indexes = scan(['dog', 'contraband', 'cat', 'zippers', 'contraband']);
console.log('Contraband Indexes: ' + indexes);
解决方案
Array 方法将forEach
索引与相关元素一起传递。因此,您可以使用该索引值附加到您的contrabandIndexes
数组。
function scan(freightItems) {
const contrabandIndexes = [];
freightItems.forEach(function(freightItem, idx) {
if (freightItem === 'contraband') {
contrabandIndexes.push(idx);
}
});
return contrabandIndexes;
}
const indexes = scan(['dog', 'contraband', 'cat', 'zippers', 'contraband']);
console.log('Contraband Indexes: ' + indexes);
你也不需要let contrabandIndexes = [];
函数的外部。至少不在这个片段中。
推荐阅读
- python - 如何在 Python 中附加重叠的元组并按顺序列出它们?
- python-3.x - 当明确有一个名为“lal”的目录时,为什么会出现错误“没有名为 lal 的模块”?
- javascript - Javascript/JQuery 程序仅在 Safari 中刷新后有效
- python - 读取图像的 tf.record 和直接读取图像的不同结果
- typescript - 在 TypeScript 中调用函数类型的联合
- c++ - 类似于 setw 的函数而不从 iomanip 库中调用它?
- python - 提取唯一值并根据条件创建新数据框
- linux-device-driver - 如何防止内核模块加载?
- plugins - 使用notepadpp在文本文件中执行复杂操作的替代方法?
- json - 使用 UI 将 JSON 加载到 Bigquery 时出错