проблемы, чтобы выяснить, как установить динамические переменные для функций, таких как push, indexOf - PullRequest
0 голосов
/ 10 января 2019

как я могу установить динамические переменные для функции? если вы попытаетесь запустить отрыванную версию, вы увидите, что вывод - это просто точка. Я также попытался заглянуть внутрь кода и посмотреть, возвращаемое значение не определено. Я пытался также с окном [${which_section}], но я новичок и не знаю, как я мог справиться с этим. ТНХ

var Nr22_objectarray_1 = [ {name: "fruit", species: "apple"},
                           {name: "miau", species: "cat"},
   	                   {name: "omeprazol", species: "medicine"},
                         ];
var Nr22_objectarray_2 = [ {name: "fruit", species: "orange"},
                           {name: "miauzi", species: "cat"},
                           {name: "ezomeprazol", species: "medicine"},
                         ];
var Nr22_objectarray_3 = [ {name: "fruit", species: "banana"},
                           {name: "miau", species: "cat"},
                           {name: "nivea", species: "cream"},
                         ];
function Nr22_reduceDuplicatesOnObjectArrays (which_array, which_section) {
  let tester = which_array.reduce(function (a, b){
    if ( a.indexOf(b.which_section) < 0 ) {
       // which_section = name
       a.push(b.which_section);
     }
     //a = undefined
     return a;
   }, []);
   tester.sort();
   return tester.join(", ") + ".";
}
let Nr22_array_new = [];
Nr22_array_new = Nr22_objectarray_1.concat(Nr22_objectarray_2, 
Nr22_objectarray_3);
let Nr22_uniq = Nr22_reduceDuplicatesOnObjectArrays(Nr22_array_new, "name");
document.write(Nr22_uniq);

1 Ответ

0 голосов
/ 10 января 2019

Я думаю, что вы пытаетесь использовать синтаксис []. Вы можете использовать его для доступа к свойству объекта на основе имени свойства, предоставленного строкой.

const which_section="name";
const b = {name: 'miauzi'};
console.log(b[which_section]); //=> miauzi

var Nr22_objectarray_1 = [{
    name: "fruit",
    species: "apple"
  },
  {
    name: "miau",
    species: "cat"
  },
  {
    name: "omeprazol",
    species: "medicine"
  },
];
var Nr22_objectarray_2 = [{
    name: "fruit",
    species: "orange"
  },
  {
    name: "miauzi",
    species: "cat"
  },
  {
    name: "ezomeprazol",
    species: "medicine"
  },
];
var Nr22_objectarray_3 = [{
    name: "fruit",
    species: "banana"
  },
  {
    name: "miau",
    species: "cat"
  },
  {
    name: "nivea",
    species: "cream"
  },
];

function Nr22_reduceDuplicatesOnObjectArrays(which_array, which_section) {
  let tester = which_array.reduce(function(a, b) {
    if (a.indexOf(b[which_section]) < 0) {
      // which_section = name
      a.push(b[which_section]);
    }
    //a = undefined
    return a;
  }, []);
  tester.sort();
  return tester.join(", ") + ".";
}
let Nr22_array_new = [];
Nr22_array_new = Nr22_objectarray_1.concat(Nr22_objectarray_2,
  Nr22_objectarray_3);
let Nr22_uniq = Nr22_reduceDuplicatesOnObjectArrays(Nr22_array_new, "name");
document.write(Nr22_uniq);
...