Я пытаюсь прочитать массив из Python (база данных mongodb), и прочитать его в подменю контекстного меню - PullRequest
0 голосов
/ 06 февраля 2019

Итак, я пытаюсь прочитать массив из python, а python вызывает mongodb.Поскольку я пытаюсь прочитать массив, я получаю каждый символ из массива.Как будто код читает массив как строку.

Я пытался читать этот код по-разному, но всегда застревал.Сначала я читаю значение и помещаю его в переменную const.Затем я создаю цикл for для циклического перемещения по массиву и отображения каждого элемента, например «1 - клиент 1» ...

var displayClient = [];
const clients = document.getElementById("clients").value;
var clients_array = clients;
console.log(clients);

var itemDisp = [];
var arrayLength = clients_array.length;

//looping through the objects inside the object
for (var i = 0; i < arrayLength; i++) {
    var client = clients_array[i].toString().split(',');
    displayClient.push(client[0] + ' - ' + client[1]);
    itemDisp.push({ label: displayClient[i]});  
}

//calling to diplay in the context menu
return { 
    "AddClient" : {
    label: "Add Client",                        
    "submenu": itemDisp, 
    disabled: false
}

//the array which I am trying to read
[['1', 'client 1'], ['2', 'client 2']]

ожидаемый результат - отображение чего-то вроде;1 - клиент 1 ... пока фактический результат есть;[- undefined, [- undefined, '- undefined ...

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Я не могу понять ваш код, но, возможно, понял вашу проблему.Этот код может помочь вам получить желаемый результат: -

`

var itemDisp = [];
const clients = document.getElementById("clients").value;
try{
    // This line will parse your array string into JS array object
    var clientsArray = JSON.parse(clients.replace(/'/g,"\""));

    for(var internalArray of clientsArray){
        itemDisp.push({label : internalArray.join(" - ")});
    }
}catch(e){
    console.error("String provided is not a valid array string");
}

console.log(itemDisp);

`

0 голосов
/ 06 февраля 2019

попробуйте это:

return { 
   "AddClient" : {
     label: "Add Client",                        
     "submenu": itemDisp, 
     disabled: false
  }
}

Я делаю это и работаю:

var displayClient = [];
const clients = [['1', 'client 1'], ['2', 'client 2']];
var clients_array = clients;
console.log(clients);

var itemDisp = [];
var arrayLength = clients_array.length;

//looping through the objects inside the object
for (var i = 0; i < arrayLength; i++) {
  var client = clients_array[i].toString().split(',');
  displayClient.push(client[0] + ' - ' + client[1]);
  itemDisp.push({ label: displayClient[i]});  
}

//calling to diplay in the context menu
let test = { 
  "AddClient" : {
    label: "Add Client",                        
    "submenu": itemDisp, 
    disabled: false
  }
}

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