2015-10-19 95 views
0

下面的代碼產生基於所述指定輸入值的數組:JavaScript數組基於輸入值

<input value="jan, feb, mar"> 
<input value="apr, may, jun"> 
<input value="jul, aug, mar"> 

    #### 

    anArray = [] 
    $("input").each -> 
     tv = $(this).val() 
     anArray.push(tv) 
    console.log anArray 

    >>> ["jan, feb, mar", "apr, may, jun", "jul, aug, sep"] 

我怎樣才能使之成爲一組包裹在另一個陣列陣列的?

[ ["jan, feb, mar"], ["apr, may, jun"], ["jul, aug, sep"] ] 

我也有點管理它做一組對象,但我根本不需要鑰匙。也許我可以去掉這個key的對象,只剩下value

content = $("input") 
    object = $.map content, (x) -> 
     'key': $(x).val() 
    console.log JSON.stringify(object) 

    >>> [{"key":"jan, feb, mar"},{"key":"apr, may, jun"},{"key":"jul, aug, mar"}] 

最終我會通過JSON發佈這個數據到服務器,因此,所有我真正需要的是滿足數據格式的控制器的期望,在這裏輸入的值將被組合在一起,並與分離昏迷。

+0

'<輸入值=「七月,八月,mar「>'typo? –

+1

@Quentin爲什麼這個關閉?這不是所鏈接問題的重複。這個問題有一個簡單的解決方案,但它與將字符串分隔成數組無關。只要做'anArray.push([電視])'應該做的伎倆。 – altocumulus

+0

@ RokoC.Buljan,不,完全沒有。爲什麼? –

回答

1

相反推串的,推陣列與琴絃:

anArray = [] 
$("input").each -> 
    tv = $(this).val() 
    anArray.push([tv]) 
console.log anArray 
-1

使用split功能:

anArray = [] 
 
    $("input").each(function(tv){ 
 
     tv = $(this).val() 
 
     anArray.push(tv.split(",")) 
 
    }) 
 
     
 
    document.write(JSON.stringify(anArray));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input value="jan, feb, mar"> 
 
<input value="apr, may, jun"> 
 
<input value="jul, aug, mar"> 
 
<br>

+0

'document.write'被認爲是不好的做法,使用'console'對象來測試。 –

+1

正確。只是希望它被點擊時顯示「運行代碼片段」 – MoLow