2017-05-15 9 views
1

私はObject.keys()を使って変換されたオブジェクトを持っています。ここでキーは配列に格納されています。私は、私が書こうとしている残りの機能のために必要ではないキーをスプライスするために配列をループしようとしています。特定の要素と等しくない配列と戻り要素の連結

var objectDef = { 
    pitcher: 'dave', 
    runner: 'joel', 
    umpire: 'kevin', 
    action/0/id: 1, 
    action/0/name: 'review', 
    action/0/killjoy: 'no' 
    } 

    //define array of keys 
var givenObject = typeof objecDef == "object" ? Object.keys(objectDef) : [objectDef]; 

スプライシングアクション/ 0/killjoyとアクション/ 0/nameのスプライシングについてどうすればよいですか?私は投手、ランナー、審判、アクション/ 0/idが返されただけです。これらの不要なフィールドは、サーバーから受信したデータに応じて存在する場合と存在しない場合があります。

+0

[フィルタリング](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter?v=example)できます。 –

+0

最後の行 'typeof ==" object "は構文エラーを投げているはずです... –

+1

[JavaScriptの配列から特定の要素を削除するにはどうすればいいですか?](http://stackoverflow.com/questions/) 5767325/javascriptで配列から特定の要素を削除する方法) –

答えて

0
Object.keys(objectDef).filter(key=>typeof objectDef[key]!=="object"); 

その要素がオブジェクトであるオブジェクト場合だけ使用object spread/rest notation ...

+0

まあ私はすべてのキーを格納し、araryから最後の2つの要素を削除するために配列を使用しようとしているので、最初の4つの要素を返すことができます。 – Demon

+0

@Demonは、上位コードが何をしているか(またはそうではなく、逆転がありませんでした)... –

0

を確認してください。

const {'action/0/killjoy': ignore1, 'action/0/name': ignore2, ...newObject} = objectDef; 

newObjectは今、残りのプロパティが含まれています。

ブラウザーがサポートされるまで、これにはある種のトランスフライヤーが必要です。

+0

ああ、私はトランスバーラーのためにバーベルを使用しています – Demon

+0

https://babeljs.io/docs/plugins/transform-object-休息拡散/。 –

関連する問題