2017-05-26 7 views
0

join()関数を使用した後に、配列から項目を削除する方法を理解できません。.join()の後にarray.splice()を使用する方法は?

あなたがわかるように、任意の助け

var recordsArray1 = ['a','b','c','d','e','f']; 
 
\t 
 
console.log(recordsArray1.length); 
 
recordsArray1.splice('a', 1); 
 
console.log(recordsArray1); 
 

 
var recordsArray2 = ['g','h','i','j','k','l'].join('\n'); 
 
\t 
 
console.log(recordsArray2.length); 
 
recordsArray2.splice('g', 1); 
 
console.log(recordsArray2);

おかげで...最初array.splice()が動作しますが、2番目にはありません。

ティム

+0

もちろん、最良の方法は、forループを使用してビジュアル表現を生成し、そこにすべての書式を適用することです。 –

答えて

1

Array.prototype.join(separator)separatorがで区切った文字列に配列を変換文字列にアレイからそれをオンに参加します。要素を改行で結合する場合は、スライシングのような他の配列操作の後に結合を実行します。

+0

配列アイテムの(垂直)リストを最初に作成し、後でアイテムを削除するにはどうすればよいですか? –

+0

したい場合は、すべての項目に「\ n」を追加してフィルタリングすることができます。これはlist.map(item => item + "\ n")のようなもので行うことができます –

+1

実際には、 "配列項目の垂直リスト"のようなものはありません。配列項目は、配列内のメモリ内の単なる項目です。私はあなたが配列と配列自体の表現を混乱させていると思います。 –

0

私があなたの必要性を正しく理解していれば、配列を文字列に結合するのではなく、要素の上にマップし、それぞれに改行を追加することができます。これが何をすべき:

recordsArray2 = ['g','h','i','j','k','l'] 
 
recordsArray2.map((x) => x + "\n")

0

まず、spliceの使用状況は適切ではありません。あなたの意図は、「それぞれ1つだけ削除してください」と思われます。「削除してください」と表示されます。しかし、スプライスの仕組みではありません。最初のパラメータはインデックスで始まり、正しい使用法は.splice(0, 1)(読み込み:インデックス0から始まる1つの要素を削除します)です。

第2に、joinは、指定されたシーケンスを使用して配列を文字列に変換します。したがって、['g','h','i','j','k','l'].join('\n');は、g\nh\ni\n...を文字列として返します。これはjoinメソッドを持たないためです。したがって、gを削除するには、の後にを削除してg:var arr =['g','h','i','j','k','l']; arr.splice(0, 1); arr = arr.join('\n');を削除することをお勧めします(または、あなたが意図したものではないと思うので、結局参加しないでください)。他の方法は、結合後にGを除去することである。 var arr =['g','h','i','j','k','l'].join('\n').substr(2)(3番目の文字から始まる文字列を返すので、gと次の\ nは削除されます)。

関連する問題