gpt4 book ai didi

javascript - 根据一个属性过滤 JavaScript 对象

转载 作者:行者123 更新时间:2023-12-02 17:01:23 25 4
gpt4 key购买 nike

我的json文件是这样的。

[
{
"ArtistID": 1,
"FollowerID": 1,
"Name": "JAYAH-Paradiso",
"Location": "UK",
"Latitude": "51.5",
"Longitude": "0.1167",
"Date": "22/03/2014"
},
{
"ArtistID": 1,
"FollowerID": 2,
"Name": "Yasmin Dan",
"Location": "London",
"Latitude": "51.5072",
"Longitude": "0.1275",
"Date": "22/03/2014"
},
{
"ArtistID": 2,
"FollowerID": 1,
"Name": "Daniel Sutka",
"Location": "London",
"Latitude": "51.5072",
"Longitude": "0.1275",
"Date": "22/03/2014"
},
{
"ArtistID": 2,
"FollowerID": 2,
"Name": "Colton Brown",
"Location": "Moore Haven, Florida",
"Latitude": "26.8333",
"Longitude": "81.1",
"Date": "22/03/2014"
}
]

我想在 map 中显示艺术家 1 和艺术家 2 的关注者。我想单独显示这些数据,例如红色圆圈中艺术家 1 的关注者位置和蓝色圆圈中艺术家 2 的关注者位置。

还有艺术家 1 和艺术家 2 的 2 个按钮。当我单击艺术家 1 按钮时,它应该只显示红色圆圈。

有人可以告诉我一种使用 ArtistID 对这些数据进行分组的方法,以便我可以在这些按钮点击中使用它吗?

我在 map 上有这些圆圈集,例如 10 个红色圆圈(Artist1)、10 个蓝色圆圈(Artist2)、10 个绿色圆圈(Artist3)。如何使用 d3 selectAll 或 select 仅选择红色圆圈?

除此之外还有其他方法吗?

颜色是这样给出的(作为“style”属性中“fill”的值,

feature = g.selectAll("circle")
.data(data)
.enter().append("circle")
.attr("id", function (d) { return d.ArtistID + d.FollowerID; })
.style("stroke", "black")
.style("opacity", .6)
.style("fill", function (d) {
if (d.ArtistID == 1) { return "red" }
else if (d.ArtistID == 2) { return "blue" }
else { return "green" }
;
})
.attr("r", 10);

所以,圆圈会这样画,

<circle id="10" r="10" transform="translate(695,236)" style="stroke: rgb(0, 0, 0); opacity: 0.6; fill: rgb(255, 255, 0);"></circle>

我想选择红色圆圈。

过滤 json 文件的数据,或仅选择一种颜色的圆圈会有所帮助。

提前致谢。

最佳答案

尝试使用以下方法获取必填字段:

<script>
var json = [
{
"ArtistID": 1,
"FollowerID": 1,
"Name": "JAYAH-Paradiso",
"Location": "UK",
"Latitude": "51.5",
"Longitude": "0.1167",
"Date": "22/03/2014"
},
{
"ArtistID": 1,
"FollowerID": 2,
"Name": "Yasmin Dan",
"Location": "London",
"Latitude": "51.5072",
"Longitude": "0.1275",
"Date": "22/03/2014"
},
{
"ArtistID": 2,
"FollowerID": 1,
"Name": "Daniel Sutka",
"Location": "London",
"Latitude": "51.5072",
"Longitude": "0.1275",
"Date": "22/03/2014"
},
{
"ArtistID": 2,
"FollowerID": 2,
"Name": "Colton Brown",
"Location": "Moore Haven, Florida",
"Latitude": "26.8333",
"Longitude": "81.1",
"Date": "22/03/2014"
}
];
var data = eval(json);
for(x in data){
alert(data[x].ArtistID);
if(){//check condition on ArtistID and use the data
}
}
</script>

关于javascript - 根据一个属性过滤 JavaScript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25672518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com