Javascript 如果AngularJS满足条件,我只想添加JSON信息
我有一个名为components.JSON的JSON:Javascript 如果AngularJS满足条件,我只想添加JSON信息,javascript,angularjs,json,Javascript,Angularjs,Json,我有一个名为components.JSON的JSON: {"components": { "boardSpaces": [ {"name":"GO!", "price":0, "position":0, "type":"go"}, {"name":"Mediterranean Avenue", "type": "property", "price":60, "position":1}, {"name":"Community Chest",
{"components": {
"boardSpaces": [
{"name":"GO!", "price":0, "position":0, "type":"go"},
{"name":"Mediterranean Avenue", "type": "property", "price":60, "position":1},
{"name":"Community Chest", "price":0, "position":2, "type":"communityChest"},
{"name":"Baltic Avenue", "price":60, "position":3, "type":"property"},
{"name":"Income Tax", "price":0, "type":"incomeTax", "position":4},
{"name":"Reading Railroad", "price":200, "position":5, "type":"railroad"},
{"name":"Oriental Avenue", "price":100, "position":6, "type":"property"},
{"name":"Chance", "price":0, "position":7, "type":"chance"},
{"name":"Vermont Avenue", "price":100, "position":8, "type":"property"},
{"name":"Connecticut Avenue", "price":120, "position":9, "type":"property"},
{"name":"Jail", "price":0, "position":10, "type":"jail"}]
}}
我想在angularjs上创建一个数组,将每个对象保存在boardSpaces
下,但前提是price
不等于0。简言之,我需要一个名为self.board
的数组,只要价格
等于0
就可以将boardSpaces
中的每个对象保存到数组中
这是我的angularjs文档:
self.board = [];
$http.get('components/components.json').then(function(response) {
for(space in response.data.components.boardSpaces) {
if(response.data.components.boardSpaces[space].price === 0) {
self.board.push(space);
};
};
});
出于某种原因,当我尝试使用
ng repeat
在html页面中循环此操作时,它不想工作。我在没有条件的情况下尝试了这个方法,它确实有效,但由于某种原因,它不能与if
语句一起工作。使用forEach
遍历数组怎么样?我认为语法更容易理解:
response.data.components.boardSpaces.forEach(function (element,index) {
if(element.price !== 0) { // if not zero ...
self.board.push(index); //or element, not sure what you are trying to store
};
});
使用
forEach
遍历数组怎么样?我认为语法更容易理解:
response.data.components.boardSpaces.forEach(function (element,index) {
if(element.price !== 0) { // if not zero ...
self.board.push(index); //or element, not sure what you are trying to store
};
});
这个怎么样
$http.get('components/components.json').then(function(response) {
self.board = response.data.components.boardSpaces.
filter(function(space) {
return space.price === 0;
});
});
或者在工作代码段中使用纯javascript:
var数据={“组件”:{
“董事会空间”:[
{“name”:“GO!”,“price”:0,“position”:0,“type”:“GO”},
{“名称”:“地中海大道”,“类型”:“物业”,“价格”:60,“位置”:1},
{“名称”:“公益金”,“价格”:0,“职位”:2,“类型”:“公益金”},
{“名称”:“波罗的海大道”,“价格”:60,“位置”:3,“类型”:“物业”},
{“名称”:“所得税”,“价格”:0,“类型”:“incomeTax”,“位置”:4},
{“名称”:“阅读铁路”,“价格”:200,“位置”:5,“类型”:“铁路”},
{“名称”:“东方大道”,“价格”:100,“位置”:6,“类型”:“物业”},
{“name”:“Chance”,“price”:0,“position”:7,“type”:“Chance”},
{“名称”:“佛蒙特大道”,“价格”:100,“位置”:8,“类型”:“物业”},
{“名称”:“康涅狄格大道”,“价格”:120,“位置”:9,“类型”:“物业”},
{“名称”:“监狱”,“价格”:0,“位置”:10,“类型”:“监狱”}]
}};
函数getData(){
返回数据。组件。板空间。过滤器(函数(空间){
返回空间。价格===0;
});
}
var terminal=document.getElementById('terminal');
getData().forEach(函数(空间){
terminal.innerHTML+=space.name+'-'+space.price+'\n';
});代码>
pre{
边框:1px纯色灰色;
背景:浅灰色;
填充:15px;
利润率:32px;
}
这个怎么样
$http.get('components/components.json').then(function(response) {
self.board = response.data.components.boardSpaces.
filter(function(space) {
return space.price === 0;
});
});
或者在工作代码段中使用纯javascript:
var数据={“组件”:{
“董事会空间”:[
{“name”:“GO!”,“price”:0,“position”:0,“type”:“GO”},
{“名称”:“地中海大道”,“类型”:“物业”,“价格”:60,“位置”:1},
{“名称”:“公益金”,“价格”:0,“职位”:2,“类型”:“公益金”},
{“名称”:“波罗的海大道”,“价格”:60,“位置”:3,“类型”:“物业”},
{“名称”:“所得税”,“价格”:0,“类型”:“incomeTax”,“位置”:4},
{“名称”:“阅读铁路”,“价格”:200,“位置”:5,“类型”:“铁路”},
{“名称”:“东方大道”,“价格”:100,“位置”:6,“类型”:“物业”},
{“name”:“Chance”,“price”:0,“position”:7,“type”:“Chance”},
{“名称”:“佛蒙特大道”,“价格”:100,“位置”:8,“类型”:“物业”},
{“名称”:“康涅狄格大道”,“价格”:120,“位置”:9,“类型”:“物业”},
{“名称”:“监狱”,“价格”:0,“位置”:10,“类型”:“监狱”}]
}};
函数getData(){
返回数据。组件。板空间。过滤器(函数(空间){
返回空间。价格===0;
});
}
var terminal=document.getElementById('terminal');
getData().forEach(函数(空间){
terminal.innerHTML+=space.name+'-'+space.price+'\n';
});代码>
pre{
边框:1px纯色灰色;
背景:浅灰色;
填充:15px;
利润率:32px;
}
问题是您将用于。。。在
中,您应该使用forEach的
:
response.data.components.boardSpaces.forEach(function (space) {
if(space.price === 0) {
self.board.push(space);
};
});
问题是您使用的用于。。。在
中,您应该使用forEach的
:
response.data.components.boardSpaces.forEach(function (space) {
if(space.price === 0) {
self.board.push(space);
};
});
查看您的if条件是否满足,并记录self.board的值,同时尝试打印价格(例如,价格可能有不同的数据类型,双精度“==”可能会起作用),如果您要查找的价格不同于零,则条件应为!==,not===查看是否满足您的if条件并记录self.board的值,同时尝试打印价格(例如,价格可能有不同的数据类型,双精度“==”可能会起作用),如果您要查找的价格不同于零,则条件应为!==,不是===