Javascript 从两个数组中查找相同的数字
大家好,请帮我用函数从两个数组中获取相同的数字Javascript 从两个数组中查找相同的数字,javascript,Javascript,大家好,请帮我用函数从两个数组中获取相同的数字 function getIntersect(arrF, arrS){ var arrF = [ 3, 5, 8]; var arrS = [1, 2, 3, 5, 8]; var nums = []; for ( var i = 0; i < arrF.length; i++ ){ for ( var j = 0; j < arrS.length; j++ ){
function getIntersect(arrF, arrS){
var arrF = [ 3, 5, 8];
var arrS = [1, 2, 3, 5, 8];
var nums = [];
for ( var i = 0; i < arrF.length; i++ ){
for ( var j = 0; j < arrS.length; j++ ){
if ( i == j ){
nums.push(i);
nums.push(j);
return nums;
}
}
}
}
document.write(getIntersect());
var arr1 = [1,2,3,4,5,6,7];
var arr2 = [5,6,7];
var arr3 = arr1.filter(function(item) { return arr2.indexOf(item) !== -1; });
console.log(arr3);
函数getIntersect(arrF,arrS){
var-arrF=[3,5,8];
var-arrS=[1,2,3,5,8];
var nums=[];
对于(变量i=0;iincludes()
来检查第一个数组(arrF
)中的元素是否存在于第二个数组(arrS
)中
由于您正在编写函数(getIntersect()
),因此可以在函数外部声明输入数组,并在调用函数时传递这些数组。这样,您就可以对任何其他输入集重用该函数
var arrF=[3,5,8];
var-arrS=[1,2,3,5,8];
函数getIntersect(arrF,arrS){
var nums=[];
对于(变量i=0;i log(getIntersect())
您可以使用数组includes()
来检查第一个数组(arrF
)中的元素是否存在于第二个数组(arrS
)中
由于您正在编写函数(getIntersect()
),因此可以在函数外部声明输入数组,并在调用函数时传递这些数组。这样,您就可以对任何其他输入集重用该函数
var arrF=[3,5,8];
var-arrS=[1,2,3,5,8];
函数getIntersect(arrF,arrS){
var nums=[];
对于(变量i=0;i log(getIntersect())代码>您可以使用过滤器
获得更简单的代码
函数getIntersect(arrF,arrS){
返回arrF.filter(o=>arrS.includes(o));
}
var-arrF=[3,5,8];
var-arrS=[1,2,3,5,8];
var结果=getIntersect(arrF,arrS);
控制台日志(结果)代码>您可以使用过滤器
获得更简单的代码
函数getIntersect(arrF,arrS){
返回arrF.filter(o=>arrS.includes(o));
}
var-arrF=[3,5,8];
var-arrS=[1,2,3,5,8];
var结果=getIntersect(arrF,arrS);
控制台日志(结果)代码>以下是更新的代码,有两个更新:
- 在函数中添加了参数
- 将return语句置于
for
循环的外部
- 比较值而不是索引
- 不要同时按下两个值,而是只按下一个(因为它们是相同的)
var arrF=[3,5,8];
var-arrS=[1,2,3,5,8];
var nums=[];
函数getIntersect(arrF,arrS){
对于(变量i=0;i 编写(getIntersect(arrF,arrS))代码>以下是更新的代码,有两个更新:
- 在函数中添加了参数
- 将return语句置于
for
循环的外部
- 比较值而不是索引
- 不要同时按下两个值,而是只按下一个(因为它们是相同的)
var arrF=[3,5,8];
var-arrS=[1,2,3,5,8];
var nums=[];
函数getIntersect(arrF,arrS){
对于(变量i=0;i 编写(getIntersect(arrF,arrS))
只需使用JavaScript中数组对象上可用的reduce
函数,就可以获得预期的结果
function getIntersect(arrF, arrS){
return arrF.reduce((p, c) => {
if(arrS.indexOf(c) !== -1) {
p.push(c);
}
return p;
}, [])
}
//invoke helper function
getIntersect([3,5,8], [1, 2, 3, 5, 8])
//output
// [3, 5, 8]
只需使用JavaScript中数组对象上可用的reduce
函数,就可以获得预期的结果
function getIntersect(arrF, arrS){
return arrF.reduce((p, c) => {
if(arrS.indexOf(c) !== -1) {
p.push(c);
}
return p;
}, [])
}
//invoke helper function
getIntersect([3,5,8], [1, 2, 3, 5, 8])
//output
// [3, 5, 8]
函数getIntersect(arrF,arrS){
var-arrF=[3,5,8];
var-arrS=[1,2,3,5,8];
var nums=[];
对于(变量i=0;i
函数getIntersect(arrF,arrS){
var-arrF=[3,5,8];
var-arrS=[1,2,3,5,8];
var nums=[];
对于(变量i=0;i
您可以使用哈希表的帮助,将值作为键,并将属性设置为true
对第一个数组执行此操作,对于第二个数组,检查是否设置了属性,然后将值作为结果
函数getIntersect(a,b){
var hash={},
我
结果=[];
对于(i=0;i log(getIntersect([3,5,8],[1,2,3,5,8])
您可以使用哈希表的帮助,在该哈希表中,您将值作为键,并将属性设置为true
对第一个数组执行此操作,对于第二个数组,检查是否设置了属性,然后将值作为结果
函数getIntersect(a,b){
var hash={},
我
结果=[];
对于(i=0;ivar arr1 = [1,2,3,4,5,6,7];
var arr2 = [5,6,7];
var arr3 = arr1.filter(function(item) { return arr2.indexOf(item) !== -1; });
console.log(arr3);