Сравните два Массива JavaScript - Ассоциативный

Вы могли бы хотеть дать , обслуживают FiveRuns TuneUp попытку, поскольку это является действительно довольно впечатляющим. Правовая оговорка: я не связан с FiveRuns всегда, я только что испытал этот сервис.

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

Это дает Вам некоторые хорошие графики, включая тот, который показывает то, на какая пропорция времени потрачена в Модели, Представлении и Контроллере. Можно даже выполнить развертку права видеть отдельные SQL-запросы, которые выполняет ActiveRecord, если Вы должны, и это может показать Вам базовую схему базы данных другим щелчком.

Наконец, можно дополнительно загрузить профильные данные на сайт FiveRuns для анализа работы сообщества и совета.

9
задан 10 July 2009 в 01:10
поделиться

2 ответа

Я думаю, что следующее должно делать то, что вы хотите:

function nrKeys(a) {
    var i = 0;
    for (key in a) {
        i++;
    }
    return i;
}
function compareAssociativeArrays(a, b) {
   if (a == b) {
       return true;
   }   
   if (nrKeys(a) != nrKeys(b)) {
       return false;
   }
   for (key in a) {     
     if (a[key] != b[key]) {
         return false;
     }
   }
   return true;
}
7
ответ дан 4 December 2019 в 11:43
поделиться

Я действительно не знаю, есть ли лучший способ сделать это, чем метод грубой силы:

function differences(a, b){
  var dif = {};
  for(key in a){ //In a and not in b
    if(!b[key]){
      dif[key] = a[key];
    }
  }
  for(key in a){ //in a and b but different values
    if(a[key] && b[key] && a[key]!=b[key]){
      //I don't know what you want in this case...
    }
  }
  for(key in b){ //in b and not in a
    if(!a[key]){
      dif[key] = b[key];
    }
  }
  return dif;
}

Кроме того, они являются объектами, а не массивами, и некоторые свойства не будут перечисляться через for..in (например, Array.length), поэтому примите это во внимание для вашего приложения.

2
ответ дан 4 December 2019 в 11:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: