javascript - for循环递增是减少给定值而不是递增它
问题描述
嘿,我是 JS 新手,我一直在玩它。今天我被这个问题困住了,请帮助我理解我做错了什么。
我知道代码看起来很混乱,但我想在这里做的是我想从 idList 中删除那些在 onlinelike 中找不到的项目。但我发现出了点问题,本来打算增加我喜欢 0,1,2 等的 for 循环反而倒计时了。
请帮忙。
const idList = ['group1 1', 'group2 2', 'group3 3', 'group1 4'];
const onlinelike = ['group1 1', 'group3 2', 'group2 3', 'group1 4'];
var RemovedList = [];
if (idList != null) {
idList.forEach(item => {
if (onlinelike != null) {
for (i = 0; i < onlinelike.length; i++) {
if (onlinelike[i].split(' ')[0] === item.split(' ')[0]) {
if (onlinelike[i].split(' ')[1] !== item.split(' ')[1]) {
console.log(item, 'to to be removed')
console.log(i);
}
}
}
}
});
}
同样,当从中删除 if 语句时,它开始表现得更加奇怪,例如 0,3,2,1,0,3
const idList = ['group1 1', 'group2 2', 'group3 3', 'group1 4'];
const onlinelike = ['group1 1', 'group3 2', 'group2 3', 'group1 4'];
var RemovedList = [];
if (idList != null) {
idList.forEach(item => {
if (onlinelike != null) {
for (i = 0; i < onlinelike.length; i++) {
if (onlinelike[i].split(' ')[0] === item.split(' ')[0]) {
console.log(item, 'to to be removed')
console.log(i);
}
}
}
});
}
解决方案
使用.filter
和.includes()
const idList = ['group1 1', 'group2 2', 'group3 3', 'group1 4'];
const onlinelike = ['group1 1', 'group3 2', 'group2 3', 'group1 4'];
var RemovedList = idList.filter(item=> !onlinelike.includes(item))
console.log(RemovedList)
推荐阅读
- xml - 使用 XMLEvent 解析后保留 CDATA 标记
- laravel - 根据我的范围在模型中动态移动工作过滤器以返回角色
- python - 是否可以遍历命名空间对象的属性?
- python - 使用 urllib.request.urlretrieve 从 Web 复制文件,但没有粘贴任何内容
- awk - 在 awk 的 Cygwin 版本中使用 xmlbase
- reactjs - TypeError:无法在 REACT 中读取未定义应用程序的属性“用户”
- scala - 播放框架“对等连接重置”
- sql - SQL 日期格式以显示数字日期值,后跟一个后缀
- python - Google Ad Manager API 报表查询
- python - 如何使用 Python 找到 BeautifulSoup 下一个标签/元素?