所以我从后端得到这个:
{"Item":{"userEmail":"b","Username":"bUsername","Push":"sdsdsd","Password":"sdsds","Buddy":{"datatype":"SS","contents":{"Drake":"Drake","Ola":"Ola","b":"b","d":"d"}}}}
我使用Object.Keys
将contents
缩小为:
Drake,Ola,b,d
然后我map
给予:
[{"id":"Drake"},{"id":"Ola"},{"id":"b"},{"id":"d"}]
然后在我的Angular Front-end上使用.id
。我想删除每个值的最后一个字母,即离开Drak,Ol
等。我已经尝试了很多方法但是失败了,我怎么能实现这一点,以便id
具有这些值?
修改
我现在也希望获得已削减的值并添加它以使最终产品为[{"id":"Drak",valueThatWasCut:"e"}]
答案 0 :(得分: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);
答案 1 :(得分: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', '', '' ]
答案 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);