Вывод консоли jrome в json ведет себя странно - PullRequest
0 голосов
/ 31 мая 2018

У меня есть json объект с 2 arrays, где я удаляю дублированные элементы.Я хочу показать для целей тестирования, до / после изменений.Но по неизвестной причине мой вывод консоли Chrome не отображает все элементы моего массива, хотя его длина соответствует количеству элементов в массиве.

Что я ожидаю против того, что я получаю

Создана JS скрипка , если вы хотите взглянуть на код.

Мой код структурирован следующим образом:

//Before------------------
console.log(myjsonobject);
removeduplicates(myjsonobject);
//After-------------------  
console.log(myjsonobject);

1 Ответ

0 голосов
/ 31 мая 2018

Такое поведение ожидается, так как в JavaScript объекты передаются по ссылке, а не примитивах, где они передаются по значению.

Если вы выполните глубокое клонирование массива, вы увидите, что он печатает вконсоль просто отлично ..

var createdComponents;
createdComponents = {
  "switches":[],
  "SA":[]
};
//Adding duplicates elements to my array
createdComponents.switches.push("SW1");
createdComponents.SA.push("SA1");
createdComponents.switches.push("SW1");
createdComponents.SA.push("SA1");

//Display object with duplicates
console.log("Before:------------");
console.log(JSON.parse(JSON.stringify(createdComponents)));

//Removing duplicates
createdComponents.switches = removeDuplicates(createdComponents.switches);
createdComponents.SA = removeDuplicates(createdComponents.SA);

//Display new object
console.log("After duplicates being removed:------------");
console.log(createdComponents);

function removeDuplicates(arr){
  let unique_array = []
  for(let i = 0;i < arr.length; i++){
    if(unique_array.indexOf(arr[i]) == -1){
      unique_array.push(arr[i])
    }
  }
  return unique_array
}

JSFiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...