Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   из массива в разные переменные (https://javascript.ru/forum/dom-window/49694-iz-massiva-v-raznye-peremennye.html)

Mir 24.08.2014 20:03

из массива в разные переменные
 
вот часть массива

var arr = []
arr[11] = "this, '001', 'qw2', '1234', '48', 'Black'";
arr[12] = "this, '002', 'qw3', '1234', '48', 'Grey'";
arr[13] = "this, '003', 'qw4', '1234', '48', 'Black'";
arr[14] = "this, '004', 'qw5', '3214', '50', 'Grey'";
arr[15] = "this, '005', 'qw6', '2134', '50', 'Black'";


Как разбить arr[i], чтобы значения были в разных переменных?

ksa 24.08.2014 20:19

Цитата:

Сообщение от Mir
Как разбить arr[i], чтобы значения были в разных переменных?

Как вариант...

var arr = []
arr[11] = "this, '001', 'qw2', '1234', '48', 'Black'";
arr[12] = "this, '002', 'qw3', '1234', '48', 'Grey'";
arr[13] = "this, '003', 'qw4', '1234', '48', 'Black'";
arr[14] = "this, '004', 'qw5', '3214', '50', 'Grey'";
arr[15] = "this, '005', 'qw6', '2134', '50', 'Black'";
var i=11;
var a=arr[i].split(', ');
alert(a);

Mir 24.08.2014 20:29

Цитата:

Сообщение от ksa (Сообщение 327282)
Как вариант...

Будет строка this, '001', 'qw2', '1234', '48', 'Black'
а как эту строку разбить на разные переменные? что-бы, например, было
var t1=this
var t2='001'
var t3='qw2'
var t4='1234'
var t5='48'
var t6='Black'

ksa 24.08.2014 20:30

Цитата:

Сообщение от Mir
Будет строка this, '001', 'qw2', '1234', '48', 'Black'

Не строка, а массив. :) Это алерт его преобразовывает...

ksa 24.08.2014 20:33

Цитата:

Сообщение от Mir
а как эту строку разбить на разные переменные? что-бы, например, было
var t1=this
var t2='001'
var t3='qw2'
var t4='1234'
var t5='48'
var t6='Black'

Как вариант...

var arr = []
arr[11] = "this, '001', 'qw2', '1234', '48', 'Black'";
arr[12] = "this, '002', 'qw3', '1234', '48', 'Grey'";
arr[13] = "this, '003', 'qw4', '1234', '48', 'Black'";
arr[14] = "this, '004', 'qw5', '3214', '50', 'Grey'";
arr[15] = "this, '005', 'qw6', '2134', '50', 'Black'";
var i=11;
var a=arr[i].split(', ');
for (var j=0; j<a.length; j++) {
   window['t'+j]=a[j];
};
alert(t0);
alert(t1);
alert(t2);

Только нафига такое? Работай с массивом "a"...

Erolast 24.08.2014 20:52

В ES6 есть такое, как destruction assignment. Выглядит так:
var variables = {x: 0, y: 1, z: 2};
var {x, y, z} = variables;

console.log(x); //0
console.log(y); //1
console.log(z); //2

Пока что ES6 даже не утвержден, поддерживается это только в файрфоксе, но можно использовать трансляторы в ES5. Как вариант - https://github.com/termi/es6-transpiler.

Mir 24.08.2014 20:53

Цитата:

Сообщение от ksa (Сообщение 327288)
Как вариант...
Только нафига такое? Работай с массивом "a"...

То есть так?
var arr = []
arr[11] = "this, '001', 'qw2', '1234', '48', 'Black'";
arr[12] = "this, '002', 'qw3', '1234', '48', 'Grey'";
arr[13] = "this, '003', 'qw4', '1234', '48', 'Black'";
arr[14] = "this, '004', 'qw5', '3214', '50', 'Grey'";
arr[15] = "this, '005', 'qw6', '2134', '50', 'Black'";
var i=11;
var a=arr[i].split(', ');

var t1=a[0];
var t2=a[1];
var t3=a[2];
var t4=a[3];
var t5=a[4];
var t6=a[5];

и еще добавить цикл...

ksa 24.08.2014 20:55

Цитата:

Сообщение от Mir
То есть так?

Нет...
Работай просто как с массивом

alert(a[0]);
alert(a[1]);
alert(a[2]);
//...

Т.е. другие переменные и не нужны...

Mir 24.08.2014 20:57

Цитата:

Сообщение от ksa (Сообщение 327304)
Нет...
Работай просто как с массивом

alert(a[0]);
alert(a[1]);
alert(a[2]);
//...

Т.е. другие переменные и не нужны...

Понял. Супер! Спасибо! Благодарю! :thanks:

ksa 24.08.2014 20:58

Заходи еще... :)


Часовой пояс GMT +3, время: 00:47.