---
title: "Gör en array"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/78688-gör-en-array"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "skyman"
published: "2003-06-02T11:12:57.000Z"
updated: "2003-06-04T08:58:56.000Z"
replies: 13
views: 302
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/78688-gör-en-array"
---

# Gör en array

## #1 — skyman, 2003-06-02T11:12Z

Jag hämtar options från mitt formulär.

Värderna är semikolonseparerade och jag hämta fler, ty det är en multiple...

Nu vill jag slå ihop alla värden i en array som jag ska skicka till en annan funktion...

```
<select name="Kom" multiple="multiple">
<option value="1_980386">Berg (1)</option>
<option value="1_980247,1_980464">Strömsund (2)</option>
<option value="1_980104,1_980510">Åre (2)</option>
<option value="1_980061,1_980174,1_1212937,1_1202022,1_980368,1_980590">Östersund (6)</option>
</select>
```

 Hur skriver jag en function som lägger ihop de till en array. 
Om jag väljer Berg och Strömsund vill jag ha en array som ser ut som: array(1_980386,1_980247,1_980464)...

Permalänk: https://www.webforum.nu/p/78688

## #2 — skyman, 2003-06-02T12:22Z

```
function MarkSelected(opt){
   var src = document.form.elements["Kom"], save = [], temp = "";
   for(i=0; i<src.length; i++) {
      if(src[i].selected) {
         // Kör en explode på src
         temp = src[i].value.split(",");
         for(x=0; x<temp.length; x++){
            [b]save[]=temp[x];[/b]
            alert("1");
         }
      }
   }
   bla bla bla bla
```

 Hur skriver man den feta raden, dvs tilldelningen till en array i javascript?

Permalänk: https://www.webforum.nu/p/1072235

## #3 — colione, 2003-06-02T12:44Z

save\[x\]=temp\[x\]? eller vad vill du göra?

Permalänk: https://www.webforum.nu/p/1072256

## #4 — dectgap, 2003-06-02T13:23Z

Det var inget...

Permalänk: https://www.webforum.nu/p/1072295

## #5 — skyman, 2003-06-02T13:25Z

Jag vill ha en array som ser ut såhär:
Array(
1_6546546,
1_418717,
1_1681678)

Permalänk: https://www.webforum.nu/p/1072297

## #6 — dectgap, 2003-06-02T13:47Z

```
function MarkSelected(opt){
   var src = document.form.elements["Kom"], temp = "";
   var save = new Array();
   for(i=0; i<src.length; i++) {
      if(src[i].selected) {
         // Kör en explode på src
         temp = src[i].value.split(",");
         for(x=0; x<temp.length; x++){
            save[save.length]=temp[x];
            alert("1");
         }
      }
   }
   bla bla bla bla
```

Permalänk: https://www.webforum.nu/p/1072313

## #7 — colione, 2003-06-02T13:49Z

> **dectgap skrev:**
>
> Börja med att deklarera arrayn först också:

Det har han gjort också: save=\[\]

Permalänk: https://www.webforum.nu/p/1072316

## #8 — skyman, 2003-06-02T13:55Z

Jag vill ha en endimensionell array, inte två...

save\[\] = temp\[x\] ger en endimensionell, men det blir fel...
save\[x\] = temp\[x\] fungerar, men jag vill inte ha en array som ser ut så.

Permalänk: https://www.webforum.nu/p/1072321

## #9 — dectgap, 2003-06-02T13:58Z

Jag var (är) osäker på om det räcker att skriva save = \[\] för att göra save till en array, men hur som helst räcker det inte att skriva save\[\] = nånting för att lägga till något till arrayn. Dessutom funkar det inte heller att skriva save\[x\] = temp\[x\] eftersom om det finns flera alternativ valda i select-menyn skrivs de gamla värdena i save bara över.

Permalänk: https://www.webforum.nu/p/1072324

## #10 — skyman, 2003-06-02T14:02Z

> **dectgap skrev:**
>
> Dessutom funkar det inte heller att skriva save\[x\] = temp\[x\] eftersom om det finns flera alternativ valda i select-menyn skrivs de gamla värdena i save bara över.

Precis, hur gör man då? :)

Permalänk: https://www.webforum.nu/p/1072328

## #11 — dectgap, 2003-06-02T14:05Z

Har du testat det jag skrev?

```
save[save.length]=temp[x];
```

Permalänk: https://www.webforum.nu/p/1072330

## #12 — Jojoxx, 2003-06-03T05:41Z

dectgaps variant fungerar. Men sedan har du även javascripts funktion; concat som är till för att just lägga till ett värde eller en array till en array.

save=save.concat(temp\[x\]);

Permalänk: https://www.webforum.nu/p/1072772

## #13 — skyman, 2003-06-03T06:24Z

Hmmm...
Jag vill att den här koden ska generera samma typ av slutprodukt som onClick-eventet nedan. 

```
function MarkSelected(opt){
   var src=document.form.elements["Kom"],temp = new Array(),save = new Array();
   for(i=0; i<src.length; i++) {
      if(src[i].selected) {
         temp = src[i].value.split(",");
         for(x=0; x<temp.length; x++){
            save=save.concat(temp[x]);
         }
      }
   }
   Select_s1(save);
};

function Select_s1() {
  anArray = new Array();
  for(i=0; i<arguments.length; i++){
    anArray[arguments[i]]=1;
    [b]alert(arguments[i]);[/b]
  }
...
```

 

```
<input type='button' value='Region 0 (10)' onClick="return Select_s1('1_980054','1_1210900','1_980350','1_1205661','1_980516','1_980567','1_1205735','1_1204046','1_1206422','1_1207763');">
```

 
Men, när jag klickar på knappen så visas en och en i en alert (se fet stil), men när jag "går via" MarkSelected() så skrivs id:na ut kommaseparerade...
Jag vill kunna använda Select_s1 till båda...

Permalänk: https://www.webforum.nu/p/1072778

## #14 — skyman, 2003-06-04T08:58Z

Om jag anropar funktionen och skickar med följande så fungerar det:

```
Select_s1('1_980138','1_980186','1_980324','1_980433');
```

 
Men hur ska jag göra för att få en liknande sträng/array eller vad det är jag skickar med detta:

```
   var src=document.form.elements["Kom"],temp = new Array(),save = new Array();
   for(i=0; i<src.length; i++) {
      if(src[i].selected) {
         temp = src[i].value.split(",");
         for(x=0; x<temp.length; x++){
            save=save.concat(temp[x]);
         }
      }
   }
Select_s1(save);
```

Selectboxen "Kom" kan se ut såhär med varierande antal kommaseparerade strängar:

```
<option value="1_980061,1_980174,1_1212937,1_1202022,1_980368,1_980590">Östersund (6)</option>
```

Permalänk: https://www.webforum.nu/p/1073617

---

Tråden på webben: https://www.webforum.nu/amne/javascript/78688-gör-en-array
