2013-06-30 2 views
-2

У меня есть два массива:Выясните массива Длина после сравнения

var A = [1,2,3,4,5] 
var B = [1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,455,,5,,5,,5,,5,,5,,5,,5,] 

Я хочу, чтобы сравнить массив A в B и возвращают длину совпавших содержимого. Какой самый быстрый и эффективный способ сделать это в JavaScript?

Like Length of 
1 = 5, 
Length of 2s=5 
Etc... 
+0

Сортируйте массивы, затем пропустите их, сохраняя счет в третьем массиве. Это основное решение проблемы и то, что вы должны хотя бы попытаться, прежде чем публиковать этот вопрос низкого качества. – Bojangles

ответ

0

Я написали код для этого. Здесь я посылаю вам свою скрипку.

var A = [1,2,3,4,5] 
var B = [1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,,5,,5,,5,,5,,5,,5,,5,] 

Link - http://jsfiddle.net/eawAp/1/

+2

. Вы также должны опубликовать код с объяснением в ответе, а не просто ссылку на скрипку. Ответ также должен быть полезен, не полагаясь на внешние источники. –

+0

Я. Благодарю. Я буду следовать дальше. –

0

возвращение длина согласующего содержания

Просто посчитайте их:

function count(arr) { 
    var res = {}; 
    for (var i=0; i<arr.length; i++) { 
     var content = arr[i]; 
     if (content in res) 
      res[content]++; 
     else 
      res[content] = 1; 
    } 
    return res; 
} 

Теперь вы можете сравнить отдельные отсчеты из count(A) с теми, от count(B).

Смежные вопросы