返回所有交叉点数组javascript

时间:2015-03-10 17:41:54

标签: javascript arrays intersection array-intersect

我目前的代码:

    function intersect(first, second) {
    var temp = [];
    for(var i = 0; i < first.length; i++){
        for(var k = 0; k < second.length; k++){
            if(first[i] == second[k]){
                temp.push( first[i]);
                break;
            }
        }
    }

  return temp;
}

如何更改此值以便返回所有交叉点索引?

2 个答案:

答案 0 :(得分:3)

您需要在结果中添加索引;

function intersect(first, second) {
  var temp = [];
  for(var i = 0; i < first.length; i++){
    for(var k = 0; k < second.length; k++){
      if(first[i] == second[k]){
        temp.push([i, k]); // push i and k as an array
      }
    }
  }

  return temp;
}

如果您还希望选择重复的精确交叉点,也请删除break;

在此处查找正在运行的示例:http://jsfiddle.net/0tL9sk5w/1

答案 1 :(得分:2)

您需要做的就是将两个索引作为数组推送

而不是:

temp.push( first[i]);

你需要这样做:

temp.push([i,k]);