Javascript 在二维数组中查找比较
我试图为javascript上的帖子列表创建快捷方式。 我有快捷方式和类别的帖子 我需要按快捷方式筛选帖子。 只有严格的比较:Javascript 在二维数组中查找比较,javascript,arrays,compare,shortcuts,Javascript,Arrays,Compare,Shortcuts,我试图为javascript上的帖子列表创建快捷方式。 我有快捷方式和类别的帖子 我需要按快捷方式筛选帖子。 只有严格的比较: ['Boxer', 'Terrier'] !== ['Boxer', 'Terrier', 'Bulldog'] ['Boxer'] !== ['Boxer', 'Terrier', 'Bulldog'] ['Boxer', 'Terrier'] === ['Boxer', 'Terrier'] ['Boxer', 'Terrier'] === ['Terrie
['Boxer', 'Terrier'] !== ['Boxer', 'Terrier', 'Bulldog']
['Boxer'] !== ['Boxer', 'Terrier', 'Bulldog']
['Boxer', 'Terrier'] === ['Boxer', 'Terrier']
['Boxer', 'Terrier'] === ['Terrier', 'Boxer']
['Boxer'] === ['Boxer']
我选择了这个选项,但我认为它的代码质量很差:
var allPosts = [
{
categories: [
['cats'],
['Cymric', 'Persian']
],
id: 1,
title: 'Cats',
message: 'Cymric, Persian'
},
{
categories: [
['dogs'],
['Boxer', 'Terrier']
],
id: 2,
title: 'Dogs',
message: 'Boxer, Terrier'
},
...
]
var shortcutCategories = [
['dogs'],
['Boxer', 'Terrier']
]
var displayedPosts = [];
var displayedPostsId = [];
shortcutCategories.forEach(function (shortcutSetOfCategory) {
if (shortcutSetOfCategory.length > 1) {
var internalCompare = false;
allPosts.forEach(function (post) {
post.categories.forEach(function (postSetOfCategory) {
if (postSetOfCategory.length > 1) {
shortcutSetOfCategory.every(function (shortcutCategory) {
internalCompare = postSetOfCategory.includes(shortcutCategory);
return internalCompare;
});
if (!internalCompare) {
return;
}
displayedPostsId.push(post.id);
}
});
});
} else {
allPosts.forEach(function (post) {
post.categories.forEach(function (postSetOfCategory) {
if (postSetOfCategory.length === 1) {
if (shortcutSetOfCategory[0] === postSetOfCategory[0]) {
displayedPostsId.push(post.id);
}
}
});
});
}
});
allPosts.forEach(function (post) {
var count = 0;
displayedPostsId.forEach(function (id) {
if (id === post.id)
count++;
});
if (shortcutCategories.length === count) {
displayedPosts.push(post);
}
});
我认为可以使用JSON.stringify来比较二维数组
JSON.stringify(['Boxer', 'Terrier']) === JSON.stringify(['Boxer', 'Terrier']);
JSON.stringify(shortcutSetOfCategory.sort())==JSON.stringify(postSetOfCategory.sort())
它正在工作!非常感谢你!