Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.08.2018, 16:18
Интересующийся
Отправить личное сообщение для lordenas Посмотреть профиль Найти все сообщения от lordenas
 
Регистрация: 08.11.2015
Сообщений: 14

из строки в ассоциативный массив
Подскажите, как из строки такого вида

var str = "ST000012|Name=OOO Компания|PersonalAcc=234232245234234|BankName=Московское отделение №234234 Сбербанк|BIC=837568237|CoresspAcc=24524232423424234|PayeeINN=2344848585|Sum=13123|KP2434"


Получить вот такое

obj = [{
		'': 'ST000012',
		name: 'ООО Компания',
		PersonalAcc: 234232245234234,
		BankName: 'Московское отделение №234234 Сбербанк',
		BIC: 837568237,
		CoresspAcc: 24524232423424234,
		PayeeINN: 2344848585,
		Sum: 13123,
		'': KP2434
	}]
Ответить с цитированием
  #2 (permalink)  
Старый 16.08.2018, 16:39
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

lordenas,
split and reduce
Ответить с цитированием
  #3 (permalink)  
Старый 16.08.2018, 16:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от lordenas
Получить вот такое
никак, сначала решите конфликт строки 2 и 10.
Ответить с цитированием
  #4 (permalink)  
Старый 16.08.2018, 16:47
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

lordenas,
ключи уникальными должны быть, или будут презеписываться
Ответить с цитированием
  #5 (permalink)  
Старый 16.08.2018, 16:50
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

не знаю как присвоить имя объекта
var str = "ST000012|Name=OOO Компания|PersonalAcc=234232245234234|BankName=Московское отделение №234234 Сбербанк|BIC=837568237|CoresspAcc=24524232423424234|PayeeINN=2344848585|Sum=13123|KP2434";
var obj = [];
str = str.toString().split("|");
for (i = 0; i < str.length; i++){
    str[i] = str[i].toString().split("=");
    if(str[i][1]){
        
        obj[i] = {123:str[i][1]};
        
    }else{
        
        obj[i] = {'':str[i][0]};
    }
}
console.log(obj);
Ответить с цитированием
  #6 (permalink)  
Старый 16.08.2018, 16:54
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от Artur_Hopf
str = str.toString().split("|");
Сообщение от Artur_Hopf
 str[i] = str[i].toString().split("=");
они уже стринг

Сообщение от Artur_Hopf
не знаю как присвоить имя объекта
var obj ={};
obj['prop'] = val;
Ответить с цитированием
  #7 (permalink)  
Старый 16.08.2018, 17:00
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

var reg = /(?:([^|]+)?=)?([^|]+)/g;
var str = "ST000012|Name=OOO Компания|PersonalAcc=234232245234234|BankName=Московское отделение №234234 Сбербанк|BIC=837568237|CoresspAcc=24524232423424234|PayeeINN=2344848585|Sum=13123|KP2434";
var current, i = 1, result = {};


while(current = reg.exec(str)){
  result[current[1] || 'noname' + i++] = (+current[2]).toString() === current[2] ? +current[2] : current[2];
}

alert(JSON.stringify( 
  result
,0,4))

Artur_Hopf
var str = "ST000012|Name=OOO Компания|PersonalAcc=234232245234234|BankName=Московское отделение №234234 Сбербанк|BIC=837568237|CoresspAcc=24524232423424234|PayeeINN=2344848585|Sum=13123|KP2434";
var obj = [];
str = str.toString().split("|");
for (i = 0; i < str.length; i++){
    str[i] = str[i].toString().split("=");
    obj[i] = {}
    if(str[i][1]){   
        obj[i][str[i][0]] = str[i][1];     
    }else{   
        obj[i][''] = str[i][0];
    }
}
console.log(obj);
Ещё в современном js можно делать так:
var key = 'keyName';
var obj = {[key]: 'value'};
alert(JSON.stringify( 
  obj
,0,4))
но пока не стоит.)
__________________
29375, 35

Последний раз редактировалось Aetae, 16.08.2018 в 17:04.
Ответить с цитированием
  #8 (permalink)  
Старый 16.08.2018, 17:26
Интересующийся
Отправить личное сообщение для lordenas Посмотреть профиль Найти все сообщения от lordenas
 
Регистрация: 08.11.2015
Сообщений: 14

Aetae, то что нужно. Спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Из функции передать данные в ассоциативный массив Julia1991 Общие вопросы Javascript 2 14.04.2018 20:48
Помогите из строки сделать массив с отфильтрованными словами Александр3297 Общие вопросы Javascript 4 03.12.2017 23:09
Как можно методом ajax вернуть ассоциативный массив js? Hurray AJAX и COMET 2 09.01.2016 00:19
Ассоциативный массив, toSource() Kos Общие вопросы Javascript 4 07.08.2010 23:38
добавить элементы в ассоциативный массив noer Элементы интерфейса 7 14.05.2009 10:41