2017-02-02 6 views
0

アレイリストのオブジェクトから特定の要素にアクセスする方法を教えてください。アレイから特定のオブジェクトにアクセスする

は、私は、配列を持っていると言う:

var test = [{"a":1, "b":2, "c":3}, {"a":4, "b":5, "c":6}]; 

私はそのtest[1]意志出力{"a":4, "b":5, "c":6"}を知っています。 test[1].bが出力されます5

forループを使用せずに{"b":2, "c":3"}, {"b":5, "c":6"}を出力するにはどうすればよいですか?これは、テキストの行のリストから「」プロパティを削除します

text.forEach(function(row){ 
     delete row.a; 
}); 

+0

両方のオブジェクトから 'a'を削除してログに記録しますか? – Tushar

+0

@Tusharはい、私は2,3,5,6を出力したいだけです。 – tralifa

+0

どのような出力が使われていますか?そのプロパティは永久に削除できますか? – charlietfl

答えて

1

あなたはこれが働くだろう「」プロパティなしに元の配列のコピーを返したい場合は:あなたはどの新しいオブジェクトの配列を作成するためにmapを使用することができます学習運動として

text.map((el)=> { 
    delete el.a 
    return el 
}) 
+0

'text'配列にも' a'プロパティが削除されることはないでしょう。 –

+0

ああ、そうですね...元のオブジェクトを変更せずにこれを行うことができると思います。 '' var res = text.map((el)=> Object.assign({}、{b:el.b、c :el.c}) '' ' – macksol

+0

ええ、OPはオリジナルを変更しないことが重要かどうかは言及していません。 –

1

あなたはこのように行うことができます。

1

フィルタは間違ったツールです。元の配列を変更したくない場合は、"a"プロパティを削除した元の要素のコピーを含む新しい配列にマップすることができます。

var text = [{"a":1, "b":2, "c":3}, {"a":4, "b":5, "c":6}]; 
var result = text.map(
    function(elt) { 
     var copy = Object.assign({}, elt); 
     delete copy.a; 
     return copy; 
    } 
) 
0

あなたは、2つのオプション持っている:delete operatorを使用して、配列を反復処理:

var text = [{"a":1, "b":2, "c":3}, {"a":4, "b":5, "c":6}]; 
 

 
text.forEach(function(obj) { 
 
    delete obj.a; 
 
}); 
 

 
console.log(text);

またはすべてが、aプロパティを持つオブジェクトのコピーを作成します:

var text = [{"a":1, "b":2, "c":3}, {"a":4, "b":5, "c":6}]; 
 

 
var newText = text.map(function(obj) { 
 
    var newObj = {}; 
 
    for (var prop in obj) { 
 
    if (prop !== 'a') { 
 
     newObj[prop] = obj[prop]; 
 
    } 
 
    } 
 
    return newObj; 
 
}); 
 

 
console.log(newText);

1

入力配列要素にある "b"と "c"プロパティのコピーが含まれています。この例では、マッピング関数でdestructuring asignment syntaxを使用しています。

var array1 = [{"a":1, "b":2, "c":"3"}, {"a":4, "b":5, "c":6}]; 
 
    
 
var array2 = array1.map(obj => {var {b,c} = obj; return {b,c};}); 
 
    
 
// check output 
 
console.log (JSON.stringify(array2)) // [{"b":2,"c":"3"},{"b":5,"c":6}]

注コピーすると、オブジェクト参照が最初に同定される不変のニーズをコピーすることができるかどうかを必要とするものは、JavaScriptのオブジェクトのオブジェクトまたは配列をコピーするとき。したがって、 "a"プロパティに以外のすべてのプロパティーをコピーする必要がある場合は、を修正する必要があります。

関連する問題