Преобразование отдельной строки запятой в объект значения ключа jQuery

У меня есть следующая строка:

var attrs = "FNAME=abraham,LNAME=lincoln,COUNTRY=USA,JOB=PRESIDENT"

и хотите преобразовать его в объект ключевого значения, как показано ниже, с помощью jQuery.

attrs = {
        FName:abraham,
        LName:lincoln,
        COUNTRY:USA,
        JOB:PRESIDENT
        }

используйте функцию разделения jquery, а затем расположите их в нужном порядке, например `var attrs = " FNAME = abraham, LNAME = lincoln, COUNTRY = USA, JOB = PRESIDENT "; var ind = attrs.split (','); `

Avi 16.08.2018 15:02
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
1
1
2 064
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

вы можете использовать разделение и создать объект, см. ниже

var attrs = "FNAME=abraham,LNAME=lincoln,COUNTRY=USA,JOB=PRESIDENT";
var values = attrs.split(",");
var obj = {};
for(var i=0; i<values.length; i++) {
    var keyValue = values[i].split(" = ");
    obj[keyValue[0]] = keyValue[1];
}
console.info(obj);

Также ознакомьтесь с моим ответом на тему ES6.

Domenik Reitzner 16.08.2018 15:29

$(document).ready(function() {

  var attrs = "FNAME=abraham,LNAME=lincoln,COUNTRY=USA,JOB=PRESIDENT"

  var keysValuesArray = attrs.split(',');
  // keysValuesArray = ["FNAME=abraham", "LNAME=lincoln", "COUNTRY=USA", "JOB=PRESIDENT"]

  var attrsObject = {};

  for (var i = keysValuesArray.length - 1; i >= 0; i--) {

    var keyValueArray = keysValuesArray[i].split('=');
    // Ex: keyValueArray = ["JOB", "PRESIDENT"]

    attrsObject[keyValueArray[0]] = keyValueArray[1];

  }

  console.info(attrsObject);

});
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Предлагаю вам использовать:

  • .split(",") для разделения ваших элементов key=value,
  • .forEach() для просмотра всех ваших элементов, с .split(" = ") для разделения ваших ключей и значений.

Рабочий фрагмент:

var attrs = "FNAME=abraham,LNAME=lincoln,COUNTRY=USA,JOB=PRESIDENT";
var keys_vals = attrs.split(",");
var obj = {};
keys_vals.forEach(function(key_val) {
    var [key, val] = key_val.split(" = ");
    obj[key] = val;
});
console.info(obj);

Вы даже можете использовать некоторую деконструкцию:

var attrs = "FNAME=abraham,LNAME=lincoln,COUNTRY=USA,JOB=PRESIDENT";
var obj = {};
attrs.split(",").forEach(function(key_val) {
    var [key, val] = key_val.split(" = ");
    obj[key] = val;
});
console.info(obj);

Ответ со вкусом ES6 :)

const attrs = 'FNAME=abraham,LNAME=lincoln,COUNTRY=USA,JOB=PRESIDENT';
var obj = {};
attrs.split(',').forEach((el) => {
    const [key, value] = el.split('=')
    obj[key] = value;
})
console.info(obj);

Другие вопросы по теме