2016-10-26 3 views
-1

私は配列に格納されたdivのセットを持っており、すべてのアクションを実行する必要があります。を除き、現在の反復値はです。私はフィドルhereを持っています、私は自分の状況を正しく説明していると思います。配列全体(項目ではない)をパラメータとして正しく渡す方法はありますか?

ここでは、(この場合)の値が以外のすべてを選択するために使用している関数nです。

const getRestOfArray = (array, n) => { 
    let arrayCopy = array.slice(); 
    let index = arrayCopy.indexOf(n); 
    if (index > -1) { 
     arrayCopy.splice(index, 1); 
     return arrayCopy; 
    } 
}; 

私はここで何か根本的に間違っていますか?ありがとう。

+0

問題は何ですか?あなたの関数は、nが見つかると新しい配列を返し、そうでなければundefinedを返します。 –

+0

私は予想される結果がフィドルにコメントされています。私はdivの配列のundefinedを返さないようにする必要があります。 – shanling

+3

あなたの問題は、外部サイトではなく、SOで定義して記述する必要があるので、私はフィドルに行っていないので、あなたが返すものをあなたに返します。 –

答えて

4

.indexOf()が必要ないように、インデックスは、配列ではない場合だけ、配列のコピーを返します。 2は、文字を含む配列またはDOM要素の要素ではありません。最初のパラメータとしてn.splice()と呼び、2番目のパラメータとして1を呼び出して、予想される結果を返すことができます。

const getRestOfArray = (array, n) => { 
    let arrayCopy = array.slice(); 
    arrayCopy.splice(n, 1); 
    return arrayCopy; 
}; 

https://jsfiddle.net/a03kjwfy/1/

+0

@Shanling代わりに '.slice()'、 '.concat()'を使うこともできます。 'const getRestOfArray =(array、n)=> array.slice(0、n).concat(array.slice(n + 1、array.length))' https://jsfiddle.net/a03kjwfy/3/ – guest271314

+0

完璧魅力のように働く。ありがとうございました!私は間違って何かをしていたことを知っていた..私はindexOf()の仕組みを誤解していると思う。再度、感謝します :-) – shanling

1

ので

const getRestOfArray = (array, n) => { 
    let arrayCopy = array.slice(); 
    let index = arrayCopy.indexOf(n); 
    if (index > -1) { 
     arrayCopy.splice(index, 1); 
    } 
    return arrayCopy; 
}; 
関連する問題