显示单独数组中两个数组的相同元素
Showing identical elements of two arrays in a separate array
我对JavaScript很陌生。我在这里要实现的是将两个数组的所有相同元素放入另一个数组中。然后,我删除了原始两个数组中的这些元素。
但是,单独的数组不会显示所有相同的数组。此外,这两个数组仍然显示一些相同的元素。不知道我哪里出错了。
以下代码可能存在语法错误。我不得不修改它以使其更容易提问。
var finalSelective = ["CS348", "CS353", "CS381", "CS422", "CS448", "CS490-ES0", "CS490-DSO"];
var finalSEelective = ["CS348", "CS352", "CS353", "CS354", "CS381", "CS422", "CS448", "CS456", "CS473", "CS490-DSO", "CS490-ES0"];
var SEelecSelec = []; //fulfills SE elective and S elective.
for (var i = 0; i < finalSelective.length; i++) { //There is something wrong with this one.
for (var j = 0; j < finalSEelective.length;j++){ //It does not show the correct repeats.
if (finalSelective[i] == finalSEelective[j]) {
SEelecSelec.push(finalSEelective[j]);
var x = finalSelective.indexOf(finalSelective[i]);
if (x != -1) {
finalSelective.splice(x,1);
}
x = finalSEelective.indexOf(finalSEelective[j]);
if (x != -1) {
finalSEelective.splice(x,1);
}
}
}
}
这是另一个潜在的解决方案:
带有日志记录的 JsBin
var a = ["CS348", "CS353", "CS381", "CS422", "CS448", "CS490-ES0", "CS490-DSO"];
var b = ["CS348", "CS352", "CS353", "CS354", "CS381", "CS422", "CS448", "CS456", "CS473", "CS490-DSO", "CS490-ES0"];
var c = a.concat(b).filter(function(el) {
return a.indexOf(el) > -1 && b.indexOf(el) > -1;
});
编辑:根据您在下面的评论,获得实际所需输出的代码是:
for (var i = 0; i < a.length; i++) {
var indexInB = b.indexOf(a[i]);
if (indexInB > -1){
output.push(a[i]);
a.splice(i, 1);
b.splice(indexInB, 1);
i--;
}
}
仅使用上述代码的 JsBin
这是另一种可能的解决方案。公共值被推送到一个单独的数组中,并且也会从其初始数组中删除。
var finalSelective = ["CS348", "CS353", "CS381", "CS422", "CS448", "CS490-ES0", "CS490-DSO"],
finalSEelective = ["CS348", "CS352", "CS353", "CS354", "CS381", "CS422", "CS448", "CS456", "CS473", "CS490-DSO", "CS490-ES0"],
SEelecSelec = [],
el, index;
for (var i = 0, len = finalSelective.length; i < len; i++) {
el = finalSelective[i];
index = finalSEelective.indexOf(el);
if (index > -1) {
SEelecSelec.push(el);
finalSEelective.splice(index, 1);
finalSelective.splice(i, 1);
}
}
console.log(finalSelective, finalSEelective, SEelecSelec);
普伦克在这里
相关文章:
- 如何使用 node.js 比较两个 json 数组
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 访问$.ajax()函数中的两个不同数组
- 正在更新mongod中两个对象内部的数组
- 如何使用javascript合并两个对象数组
- 比较包含多个值对的两个JavaScript数组
- jQuery对象从html表中查询为两个一维数组,用于Chartist图表
- 检查来自不同数组的两个元素的一个属性是否相等
- 如何在javascript中合并两个对象数组
- 如何获取数组第一个元素的范围
- 捕获一组两个特殊字符之间的所有内容,但允许角色在正文中出现一次
- 使用具有不同属性数的两个或多个着色器时发生冲突
- JSON数组-多个有效答案的可能性
- 编写一个函数,将数组(第一个参数)拆分为大小(第二个参数)的长度组,并将它们作为多维数组返回
- 如何添加值到javascript数组两次或更多
- 使用.shift()更新数组'5个元素
- JavaScript 过滤器数组多个条件
- 如果数组第一个元素中的字符串包含数组第二个元素中字符串的所有字母,则返回true
- Javascript序列化数组多个表单问题
- 编写一个函数,将数组(第一个参数)拆分为大小相同的组(第二个参数),并将其作为多维数组返回