Вход

Просмотр полной версии : Добавление элемента в массив


Dorian_bs
05.07.2012, 18:00
Всем привет!
Помогите разобраться в написании скрипта!
Суть в том, что необходимо создать массив, в котором будет находиться подмассив с набором определенных элементов.

Вот пример:

var arr = [];
arr["dakota"] = ['test', 'test2', 'test3'];
console.log(arr.dakota);


Данный код запишет 3 элемента "'test', 'test2', 'test3'" по адресу "arr.dakota".

Все хорошо, но не могу разобраться, как добавлять новые элементы, скажем "test4" в "arr.dakota". Делал через push, но не получилось.


var arr = [];
arr["dakota"] = ['test', 'test2', 'test3'];
arr.dakota.push('test4');
console.log(arr.dakota);


Помогите пожалуйста!
Заранее спасибо!)

oneguy
05.07.2012, 18:06
Странно. У меня этот код работает:

var arr = [];
arr["dakota"] = ['test', 'test2', 'test3'];
arr.dakota.push('test4');
alert(arr.dakota); //test,test2,test3,test4

Попробуйте запустить отсюда. Если не работает, то скажите, какой у вас браузер.

bes
05.07.2012, 22:16
Да, пример рабочий, только, исходя из этой фразы
Суть в том, что необходимо создать массив, в котором будет находиться подмассив с набором определенных элементов.
не совсем понятно, что требуется сделать: подмассив как элемент-массив исходного массива, или подмассив как свойство-массив исходного массива (я бы подумал на первое).

asmprog
15.02.2013, 12:46
<!DOCTYPE html>
<script type="text/javascript" src="jquery1-9.min.js"></script>
<html>



<body>

<p id="demo">Click the button to sort the array.


<div class="inline">13</div>
<div class="inline">1.56</div>
<div class="inline">12.45</div>
<div class="inline">4</div> </p>



<p id="demo"></p>

<button onclick="myFunction()">Try it</button>
<script>


var myArray = [];
myArray.push($('div').text().toString())

alert(myArray)


</script>

</html>


Уважаемые ГУРУ, подскажите пожайлуста, как воткнуть в массив после числа КОМУ-разделитель ,чтоб в алерте стало 13,1.56, 12.45, ??? А то оно сваливается все вкучу 131.5612.45, ... Циклом кому добавлять ?

danik.js
15.02.2013, 13:01
Циклом кому добавлять
Скорее всего - да.

asmprog
15.02.2013, 13:13
Ух! Живой человек!!! Спасибо ,друг! ...Уже получилось. Сделал с for и join(',')

asmprog
15.02.2013, 13:14
..

ksa
15.02.2013, 14:43
как воткнуть в массив после числа
Как вариант...

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
</script>
</head>
<body>
<div class="inline">13</div>
<div class="inline">1.56</div>
<div class="inline">12.45</div>
<div class="inline">4</div>
<script>
var myArray = [];
$('div').each(function (i){
myArray[i]=$(this).text();
});
alert(myArray);
</script>
</body>
</html>

asmprog
16.02.2013, 20:28
Здравствуйте! Помогите пожайлуста вывести циклом ТОЛЬКО значения после двоеточияв другой массив или алерт из такого массива: arr=[AS:a2, BS:b2,CD:c2]. Не знаю как отлавливать индекс из такого массива

danik.js
16.02.2013, 20:39
Здравствуйте! Помогите пожайлуста вывести циклом ТОЛЬКО значения после двоеточияв другой массив или алерт из такого массива: arr=[AS:a2, BS:b2,CD:c2]. Не знаю как отлавливать индекс из такого массива

Это не массив, а объект, и синтаксис другой:
var object = {AS:'a2', BS:'b2', CD:'c2'};
var array = [];

for (var property in object) {
array.push(object[property]);
}

alert(array);

asmprog
16.02.2013, 21:23
Спасибо,ДРУГ! Я уже сделал push-ем с join()''

asmprog
16.02.2013, 21:26
ОГРОМЕНЕЙШЕЕ СПАСИБО, ДРУГ! Я уже тут у вас нашел for inи поэксперементировал http://javascript.ru/for..in. Сейчас буду пробывать ВАШ ответ. Спасибо ОГРОМЕННОЕ ЕЩЕ раз! То - что искал! А наоборот: вывести ОБЪЕКТ, можно?

asmprog
17.02.2013, 00:44
Пытаюсь дабавить в ОБЪЕКТ 4элемента по циклу по принципу PUSH для массива, но не получается. Помогите, пожайлуста
var o = {};
for(e=0;e<=4;e++){
o["p"] = e}
var array = [];
for (var pr in o) {
alert(o[pr])
array.push(o[pr]);
}

Deff
17.02.2013, 01:32
var o = {};
for(i=0;i<=4;i++){
o["p"+i]=i;
}
var array = [];
for (var key in o) {
array.push('o.'+key+'=' +o[key]);
}
alert(array.join(',\n'))

asmprog
17.02.2013, 01:37
Спасибо ОГРОМНЕЙШЕЕ, ДРУЖИЩЕ ПРОФЕССОР !!!

danik.js
17.02.2013, 10:31
asmprog, а зачем эти переливания из пустого в порожнее? Почему бы в одном цикле не заполнить сразу и массив и объект? Или это ради учебных целей?