2017-06-19 35 views
1

我寫使用應用角2.打字稿 - 推分裂字符串數組

我有一個輸入和欲輸入字符串的列表,並且後來由逗號分割。

輸入:項目1,項目2,項目3

輸入的字符串我必須用逗號分割。

addItems(toSplit: string) { 
    splitted: string[] = toSplit.split(","); 
} 

而且我有一個對象:

export class Foo { 
    items: string[]; 
} 

我怎麼可以把所有分裂字符串foo.items?

+0

什麼是'Foo'類,你爲什麼輸出它? –

+0

另外,你應該聲明你的數組:let splitted:string [] = toSplit.split(「,」); –

+0

對於那些不太流利的英語的人來說:「分裂」是一個不規則的動詞,帶有不規則的形容詞派生詞,即使這樣你通常會形成過去式和形容詞,在英語中也沒有「分裂」這個詞。這只是「分裂」,即使它被用於通常使用的詞語。 –

回答

2

而且我有一個對象

這不是一個對象,它是一類。 (好吧,理所當然,它的對象)來訪問items,首先你需要一個實例來訪問它:

const instanceOfFoo: Foo = new Foo(); 

然後,一旦你有一個實例,你必須從split數組,你可以:

  1. 更換陣列上的Foo實例:

    instanceOfFoo.items = splitted; 
    

  2. 添加那些您的項目(例如,如果你可以做其再次用相同的Foo):

    instanceOfFoo.items.push(...splitted); 
    

    ...被傳播符號,它應該得到支持在TypeScript中通過轉譯。如果你想成爲老式的,而不是:

    instanceOfFoo.items.push.apply(instanceOfFoo.items, splitted); 
    

如果你已經分割字符串之前創建Foo,你可以將它作爲參數傳遞給構造函數,然後執行下列操作之一在構造函數中,無論哪個更適合您的需要:

// Using the array provided directly 
export class Foo { 
    constructor(public items: string[] = []) { 
    } 
} 

// Copying the given array 
export class Foo { 
    public items: string[] = []; 
    constructor(items: string[]) { 
     this.items.push(...items); 
    } 
} 

然後使用這類原因:

const instanceOfFoo: Foo = new Foo(splitted); 

旁註:你缺少你的方法一letconst(我認爲這是一個方法,因爲在它前面缺乏function) :

addItems(toSplit: string) { 
    const splitted: string[] = toSplit.split(","); 
// ^---- here, should be const or let depending on whether you want 
// to be able to change it 
} 
1

您可以爲您的typescript類創建constructor

export class Foo { 
    constructor(private items: string[]){} 
} 

現在你可以創建擁有您的分裂數組類對象。

var foo = new Foo(splitted); 
1

試試這個:)

class Split { 
    splitted: string[]; 
    addItems(toSplit: string) { 
     this.splitted = toSplit.split(","); 
    } 
} 


export class Foo { 
    items: string[]; 
} 

var demo = new Foo(); 
var test = new Split(); 
test.addItems("Item1,Item2,Item3"); 

demo.items = test.splitted; 

console.log(demo.items);