Javascript 使用OR运算符对数组中的值求反
这是一个非常简单的问题,但我还不能完全理解。 我有一个包含n个页面名的页面数组,我想运行一个循环,其中包含一些未包含的页面名Javascript 使用OR运算符对数组中的值求反,javascript,arrays,Javascript,Arrays,这是一个非常简单的问题,但我还不能完全理解。 我有一个包含n个页面名的页面数组,我想运行一个循环,其中包含一些未包含的页面名 var arr = ["page-name", "page-name-two", 'page-3', 'some-more', 'another-page']; for (var page in arr) { if (arr[page] !== "page-name" || arr[page] !== "some-more") { consol
var arr = ["page-name", "page-name-two", 'page-3', 'some-more', 'another-page'];
for (var page in arr) {
if (arr[page] !== "page-name" || arr[page] !== "some-more") {
console.log(arr[page])
}
}
现在我想要的结果是:
page-name-two
page-3
another-page
我做错了什么?拿着,而不是拿着
请使用for
循环,使用变量作为索引,而不是对象的键
资料来源:
var arr=[“页面名称”、“页面名称二”、“第三页”、“更多”、“另一页];
对于(变量i=0;i }
您应该使用.filter()
从第一个数组中筛选值,然后对结果数组执行您想要执行的任何操作。这将避免您编写大量或
/和
条件,以防您需要过滤更多值
让arr1=[“页面名称”、“页面名称二”、“第三页”、“更多”、“另一页”],
arr2=[“页面名称”,“更多”];
让结果=arr1.filter=>!arr2.includes(s));
控制台日志(结果)代码>我将存储要删除的值,然后在所有页面名称列表上运行Array.filter以查找匹配项。如果名称匹配,请将其从最终数组中删除
// This can be a array of whatever strings you're looking to eliminate from the array
const valuesToFilter = ['page-name', 'some-more'];
// Your original array
const arr = ["page-name", "page-name-two", 'page-3', 'some-more', 'another-page'];
// Use Array.filter to eliminate anything that doesn't pass the filter test
const filteredArr = arr.filter(page => {
let foundMatch = false;
valuesToFilter.forEach(value => {
if (page === value) {
foundMatch = true;
}
})
if (!foundMatch) return page;
});
console.log(filteredArr);