2016-10-29 3 views
1

を最後の文字を削除するだから私はバックエンドからこれを取得しています:マップ値から

{"Item":{"userEmail":"b","Username":"bUsername","Push":"sdsdsd","Password":"sdsds","Buddy":{"datatype":"SS","contents":{"Drake":"Drake","Ola":"Ola","b":"b","d":"d"}}}} 

私はcontentsを絞り込むことObject.Keysを使用します。私は、その後map与えるためにどの

Drake,Ola,b,d 

[{"id":"Drake"},{"id":"Ola"},{"id":"b"},{"id":"d"}] 

これは、角度フロントエンドでとして使用されます。 Drak,Olなど多くの方法を試してみましたが、失敗しました。どうすればこれを実現できますか。idにこれらの値がありますか?

EDIT

私は今もカットされたその値を取得し、それは、このような最終製品は[{"id":"Drak",valueThatWasCut:"e"}]

+0

、単に文字列の最後の文字をスライス? – adeneo

+2

https://jsfiddle.net/vjahd2o0/1/ – adeneo

+0

最後の2つの要素は ""になります。右? –

答えて

0

。マップ内

var data = {"Item":{"userEmail":"b","Username":"bUsername","Push":"sdsdsd","Password":"sdsds","Buddy":{"datatype":"SS","contents":{"Drake":"Drake","Ola":"Ola","b":"b","d":"d"}}}}, 
 
    ids = Object.keys(data.Item.Buddy.contents).reduce(function (r, k) { 
 
     var n = k.slice(0, -1); 
 
     return n ? r.concat({ id: n }) : r; 
 
    }, []); 
 

 
console.log(ids);

0

を一時的な内容は、オブジェクトを作成し、その中に変更されることを追加したいです。

これを元のオブジェクトに設定するだけです。 ES6スプレッド演算子は、すべてのキーと値を再指定せずに残りのデータを保存します。おそらく、

let items = {"Item:{"userEmail":"b","Username":"bUsername","Push":"sdsdsd","Password":"sdsds","Buddy":{"datatype":"SS","contents":{"Drake":"Drake","Ola":"Ola","b":"b","d":"d"}}}}; 
let contents = items.Item.Buddy.contents; 

let contentsNew = Object.keys(contents).map((content) => { 
    return {[content.substring(0, content.length-1)]: content.substring(0, content.length-1), valueThatWasCut: content[content.length-1]}; 
}); 

items = {...items, Item: {...items.Item,Buddy:{...items.Item.Buddy,contents: contentsNew}}}; 
console.log(items); 
0

のようなもの:あなたは、オブジェクトのキーを反復処理し、短い文字列を使用して新しいオブジェクトを構築することができ

var arr = [{"id":"Drake"},{"id":"Ola"},{"id":"b"},{"id":"d"}]; 
var result = arr.map(x => x.id.slice(0,-1)); 
console.log(result); // [ 'Drak', 'Ol', '', '' ] 
関連する問題