2017-01-16 62 views
0

我有一個映射(字符串 - >字符串),我想將其轉換爲列表以便能夠調用「map」將其轉換爲其他值的列表。背景是,我想用它在一個reactjs組件中,像這樣:將Iterable轉換爲javascript/typescript中的列表

<input type="select"> 
{props.options.entries().toList().map((type,i) => { 
       return <option value={type[0]} key={i}>{type[1]}</option> 
}) 
} 
</input> 

現在,entries()給了我一個迭代表。但它沒有「toList」。我怎樣才能做這個轉換?

+1

您是否嘗試過只是做'項() .MAP(...)'?你也錯過了一個結束大括號只是FYI – mhodges

+1

我不明白這段代碼。不匹配的花括號和括號。 – Ultimater

+0

對不起,我修正了 – Nathan

回答

0

在反應的組分render功能,

render: function() { 
    return (
    <Root> 
    ... 
    {props.options.entries().toList().map((type,i) => { 
    return <option value={type[0]} key={i}>{type[1]}</option> 
    }) 
    ... 
    </Root>) 
} 

是從什麼不同:

render: function() { 
    let optionList = props.options.entries().toList().map((type,i) => { 
    return <option value={type[0]} key={i}>{type[1]}</option> 
    } 

    return (
    <Root> 
    ... 
    {optionList} 
    ... 
    </Root>) 
} 

並沒有什麼不同:

render: function() { 
    let optionList = [] 
    // iterate through this iterable(pseudo, as the iterable interface is needed) 
    let entries = props.options.entries() 
    while (entries.hasNext()) { 
    optionList.push(entries.next()) 
    } 
    optionList.map((type,i) => { 
    return <option value={type[0]} key={i}>{type[1]}</option> 
    } 

    return (
    <Root> 
    ... 
    {optionList} 
    ... 
    </Root>) 
}