【发布时间】:2015-06-20 11:41:56
【问题描述】:
假设我有一个对象数组。我不想要某些键/值。删除一个键/值对的传统方法是使用delete,如下所示:
for (var i = 0; i < tracks.length; i++) {
delete tracks[i]["currency"];
...
}
我要拉入的物品可能有 30 多对。有没有办法可以说明我想要哪些配对并删除所有其他配对?因此,例如在这个对象数组中,我只想保留trackName、kind、price
var tracks = [{
trackNumber: "01",
trackName: "Track 1",
trackDuration: "5:35",
kind: "song",
currency: "USD",
price: 1.29
}, {
trackNumber: "02",
trackName: "Track 2",
trackDuration: "5:15",
kind: "song",
currency: "USD",
price: 1.29
}, {
trackNumber: "03",
trackName: "Track 3",
trackDuration: "5:07",
kind: "song",
currency: "USD",
price: 1.29
}, {
trackNumber: "04",
trackName: "Track 4",
trackDuration: "0:16",
kind: "song",
currency: "USD",
price: 1.29
}, {
trackNumber: "05",
trackName: "Track 5",
trackDuration: "5:35",
kind: "song",
currency: "USD",
price: 1.29
}];
【问题讨论】:
-
为什么不直接循环删除?
-
你需要为你创建一个函数,它会(取决于)返回一个新对象
-
为什么不使用
.map()来遍历数组。将你想要的值作为对象返回并替换变量tracks
标签: javascript arrays json object key-value