我很确定有类似的东西,但我无法在我的范围内找出这个。我有一个数组,我需要基于一个对象创建另一个数组(在这种情况下,BannerAtivo: true
)。
我的JSON:
[{
"BannerID": 0,
"BannerImage": "http://hotsite/example2.png",
"BannerMin": "http://hotsite/example.png",
"BannerTitulo": "Xurupita Style",
"BannerDesc": "Lorem Ipsum Dolor Siamet",
"BannerAtivo": false,
"SetorId": 1
}, {
"BannerID": 2,
"BannerImage": "http://hotsite/example2.jpg",
"BannerMin": "http://hotsite/example.jpg",
"BannerTitulo": "Chihuahua",
"BannerDesc": "Role",
"BannerAtivo": true,
"SetorId": 1
}]
我正在尝试以下代码:
var data = response.data;
$scope.banners = data;
var a = $scope.banners;
function check(a) {
return a.BannerAtivo = true;
console.log(BannerAtivo);
}
我想要的是:仅在我的范围内显示对象BannerAtivo
中true
所在的列表。我已经尝试了过滤器,并且无法弄清楚如何制作它。我甚至无法在控制台上显示它。我知道这个问题很愚蠢,是的,我是javascript和有角度的新手。遗憾。
答案 0 :(得分:1)
您实际上已将true
分配给check
函数中的变量,而不是实际检查该值。此外,console.log
语句在return
语句之后没有意义,因为它代表了永远无法访问的代码。
现在要解决您的问题,您需要做的就是根据布尔值过滤您的数组:
$scope.banners = response.data.filter((value) => {
return value.BannerAtivo;
});
答案 1 :(得分:1)
如果您发布的JSON最终在response
,那么您需要在filter()
上运行response
,而不是response.data
。
以下是工作示例代码:
var response = [{
"BannerID": 0,
"BannerImage": "http://hotsite/example2.png",
"BannerMin": "http://hotsite/example.png",
"BannerTitulo": "Xurupita Style",
"BannerDesc": "Lorem Ipsum Dolor Siamet",
"BannerAtivo": false,
"SetorId": 1
}, {
"BannerID": 2,
"BannerImage": "http://hotsite/example2.jpg",
"BannerMin": "http://hotsite/example.jpg",
"BannerTitulo": "Chihuahua",
"BannerDesc": "Role",
"BannerAtivo": true,
"SetorId": 1
}];
$scope = {};
$scope.banners = response.filter(banner => banner.BannerAtivo);
console.log($scope.banners);

答案 2 :(得分:0)
运行此代码并在控制台中检查返回的对象数组,其中只包含true值。 你走了:
<html>
<body>
<script type="text/javascript">
//Assuming you got response here
var data = [
{
"BannerID": 0,
"BannerImage": "http://hotsite/example2.png",
"BannerMin": "http://hotsite/example.png",
"BannerTitulo": "Xurupita Style",
"BannerDesc": "Lorem Ipsum Dolor Siamet",
"BannerAtivo": false,
"SetorId": 1
},
{
"BannerID": 2,
"BannerImage": "http://hotsite/example2.jpg",
"BannerMin": "http://hotsite/example.jpg",
"BannerTitulo": "Chihuahua",
"BannerDesc": "Role",
"BannerAtivo": true,
"SetorId": 1
},
{
"BannerID": 2,
"BannerImage": "http://hotsite/example2.jpg",
"BannerMin": "http://hotsite/example.jpg",
"BannerTitulo": "Chihuahua",
"BannerDesc": "Role",
"BannerAtivo": true,
"SetorId": 1
}
];
var returnTrueData = function () {
var result = [];
for (var i = 0; i < data.length; i++) { //looping through array of objects
for (key in data[i]) { //looping through each object
if(key === "BannerAtivo" && data[i][key] === true) { //If the key is "BannerAtivo" and it has value 'true'
result.push(data[i]); //push the whole object into the result array
}
}
}
console.dir(result);
return result;
}
returnTrueData();
</script>
</body>
为了更好地理解,请参阅如何循环对象或对象数组