Как создать текстовую строку, используя цикл foreach? - PullRequest
0 голосов
/ 19 сентября 2019

Пытаясь создать текстовую строку из интерфейса для отображения в пользовательском интерфейсе, ниже приведен код создания отдельного файла для каждого интерфейса. Как создать отдельный файл, как я дал в ожидаемом.

Также существует ли способ создания пользовательского интерфейса для отображения машинописного кода в качестве образца вместо использования текстовой строки?

main.js

var path = "/filepath"
var data = [
  {
        name: "IParam"
    },
    {
        name: "IError"
    }
]
  function createInterfaces(path, data) {
        var _text = 'import { ';
        $.each(data,function(id,val){
            _text +=  val.name + '}' + 'from ' + path + ';\n\n';

        });
        return _text;
    }

Ожидаемый результат должен быть

"import { IParam, IError} from '/filePath'";

Ответы [ 3 ]

2 голосов
/ 19 сентября 2019

Вы должны переместить последний бит из цикла for

function createInterfaces(path, data) {
        var _text = 'import { ';
        $.each(data,function(id,val){
            _text +=  val.name;

        });
        _text += '}' + 'from ' + path + ';\n\n'
        return _text;
    }

Еще один способ сделать это -

function createInterfaces(path, data){
 const imports  = data.map(d => d.name).join(', ');
 return `import { ${imports} } from '${path}';\n\n`;
}

Вот фрагмент кода для проверки -

var path = "/filepath"
var data = [
  {
        name: "IParam"
    },
    {
        name: "IError"
    }
]

function createInterfaces(path, data){
 const imports  = data.map(d => d.name).join(', ');
 return `import { ${imports} } from '${path}';\n\n`;
}

console.log(createInterfaces(path, data));
0 голосов
/ 19 сентября 2019

Вы можете использовать array.map для создания строки и присвоения результата переменной text.

text += `import { ${data.map(a => a.name).toString()} } from '${path}' ` 
0 голосов
/ 19 сентября 2019

Вы должны вызвать Array.prototype.map для массива data и вернуть каждый name, а затем объединить результаты.

var path = "/filepath"
var data = [ { name: "IParam" }, { name: "IError" } ]

function createInterfaces(path, data) {
  return "import { " + data.map(d => d.name).join(', ') + " } from '" + path + "';\n\n"
}

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