1
スプライス配列と観測...私持っている私に、オブジェクトの配列を返す関数、クラス内で宣言さ2つの配列を埋める角度2 - 私は、角2でフォームを作成しました
public getList(){
return this.http.get(`${APPCONSTANTS.API_PATH}/list/`)
.map(res => <myType[]> res.json())
.catch(error => {
console.log(error);
return Observable.throw(error);
});}
export class ContestAdmComponent {
public firstArray [] = [];
public secondArray[] = [];
test(){
this.myService.getList()
.subscribe(
_data => {
this.firstArray = _data;
this.secondArray= _data;
},
e => console.log('onError: %s', e),
() => console.log('onCompleted')
);
}
}
今は最初の配列を空にする(それはUIによって変更された)2つ目でそれを補充しなければならないが、私はまたfirstArrayとを削除するsecondArrayが空になる
private testDelete(){
console.log('pre delete : ' + this.secondArray.length)
this.firstArray .splice(0,this.firstArray.length);
console.log('post delete : ' + this.secondArray.length)
}
前削除:154 記事は削除:0
私はこのbehaviuorの懸念観測可能だと思う...しかし、私は考えに
いいえ、そうではありませんので、観測のだが、理由はJSセマンティクスの:firstArrayとし、SecondArray同じ配列への「ポインティング」ですので、あなたは1に変更を加えたときに、それは他に反映されます。配列を割り当てるときにその配列のコピーを作成しなければなりません。最も高速なメソッドがたくさんあります: 'this.firstArray = _data.concat([])' – olivarra1