Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何不推所有阵列都没有此产品_Javascript_Arrays_Angularjs_Json - Fatal编程技术网

Javascript 如何不推所有阵列都没有此产品

Javascript 如何不推所有阵列都没有此产品,javascript,arrays,angularjs,json,Javascript,Arrays,Angularjs,Json,例如,我有以下代码,我使用了以下json: "food": { "appetizers": [ { "id": 1, "image": "../image/calammari.png", "title": "rings", "price": 11500, "ingredient":[{

例如,我有以下代码,我使用了以下json:

"food": {
        "appetizers": [
            {
                "id": 1,
                "image": "../image/calammari.png",
                "title": "rings",
                "price": 11500,
                "ingredient":[{
                    "id" : "0001",
                    "name": "avocado"
                },
                {
                    "id" : "0001",
                    "name": "tomato"
                }
            ]
            },
            {
                "id": 2,
                "image": "../image/food2.png",
                "title": "bang bang",
                "price": 10000,
                "ingredient":[{
                    "id" : "0001",
                    "name": "eggplant"
                },
                {
                    "id" : "0001",
                    "name": "cucumber"
                }
            ]
            }
从这个json文件中,如果数组my access等于蕃茄,我只想显示含有蕃茄的食物

所以我用了这个html:

  <div ng-repeat="appetizer in appetizers ">
                        <div>
                            <img ng-src="{{appetizer.image}}" />
                           <div >
                                <p >
                                    {{appetizer.title | uppercase}}
                                </p>
                            </div>


{{开胃菜.title}大写}

这个javascript:

  var myAccess = ["tomato"];

      $scope.test = [];
      var appetizer = $scope.appetizers;
      for (var i = 0; i < $scope.appetizers.length; i++) {
        for (var j = 0; j < $scope.appetizers[i].ingredient.length; j++) {

            if ($scope.appetizers[i].ingredient[j].name === myAccess) {

// what should i write here

            }
          }
      }
      return null;    }
var myAccess=[“番茄”];
$scope.test=[];
var开胃菜=$scope.apperizers;
对于(变量i=0;i<$scope.apperizers.length;i++){
对于(var j=0;j<$scope.apperizers[i].component.length;j++){
如果($scope.apperizers[i].component[j].name==myAccess){
//我应该在这里写什么
}
}
}
返回null;}
很抱歉,如果有人能帮忙的话,请告诉我

所以myAccess=番茄,应该阅读开胃菜的第一部分,在配料番茄中,我只想推出含有番茄的配料

您可以通过以下方式使用and或:

含有某些成分的物品

const data=[{“id”:1,“image”:“./image/calammari.png”,“title”:“rings”,“price”:11500,“配料”:[{“id”:“0001”,“name”:“avocado”},{“id”:“0001”,“name”:“tomato”}],{“id”:2,“image”:“./image/food2.png”,“title”:“bang bang bang”,“price”:10000,“配料”:[{“id”:“0001”,“name”:“茄子”},{“id”:“0001”,“name”:“黄瓜”}];
const myAccess=[‘鳄梨’、‘西红柿’];
console.log(
数据过滤器(
(项目)=>
一些(
(配料)=>myAccess.includes(配料.名称)
)
)
);您可以通过以下方式使用和或:

含有某些成分的物品

const data=[{“id”:1,“image”:“./image/calammari.png”,“title”:“rings”,“price”:11500,“配料”:[{“id”:“0001”,“name”:“avocado”},{“id”:“0001”,“name”:“tomato”}],{“id”:2,“image”:“./image/food2.png”,“title”:“bang bang bang”,“price”:10000,“配料”:[{“id”:“0001”,“name”:“茄子”},{“id”:“0001”,“name”:“黄瓜”}];
const myAccess=[‘鳄梨’、‘西红柿’];
console.log(
数据过滤器(
(项目)=>
一些(
(配料)=>myAccess.includes(配料.名称)
)
)

);除了注释之外,请检查下面的JS,它可能会解决您的问题

function myFunction() {
    var myAccess = "tomato";
    $scope.test = [];
    var appetizer = $scope.appetizers;
    for (var i = 0; i < $scope.appetizers.length; i++) {
        var flag = 'false';
        for (var j = 0; j < $scope.appetizers[i].ingredient.length; j++) {
            if ($scope.appetizers[i].ingredient[j].name === myAccess) {
                flag = 'true'; // Flag to check whether it's exist
                break;
            }
        }
        if(flag == 'false') {
            appetizer.splice(index, i); // Pop that item if it's not exist
        }
    }
    $scope.appetizers = appetizer; // Re-assign
}
函数myFunction(){
var myAccess=“番茄”;
$scope.test=[];
var开胃菜=$scope.apperizers;
对于(变量i=0;i<$scope.apperizers.length;i++){
var标志='false';
对于(var j=0;j<$scope.apperizers[i].component.length;j++){
如果($scope.apperizers[i].component[j].name==myAccess){
flag='true';//检查它是否存在的标志
打破
}
}
如果(标志=='false'){
开胃菜。拼接(索引,i);//如果不存在该项目,则弹出该项目
}
}
$scope.appetizers=开胃菜;//重新分配
}
引入变量
flag
,它将告诉数组是否包含
myAccess
值。基于此,我从数组变量
开胃菜
中删除了该索引。最后,此数组变量将替换范围变量

我还没有检查密码。因此,如果合适的话,可以尝试使用这种逻辑从您的系统中实现


编辑-在比较@HMR answer:)时,我的代码看起来没有多大效果。

除了注释之外,请检查下面的JS以解决您的问题

function myFunction() {
    var myAccess = "tomato";
    $scope.test = [];
    var appetizer = $scope.appetizers;
    for (var i = 0; i < $scope.appetizers.length; i++) {
        var flag = 'false';
        for (var j = 0; j < $scope.appetizers[i].ingredient.length; j++) {
            if ($scope.appetizers[i].ingredient[j].name === myAccess) {
                flag = 'true'; // Flag to check whether it's exist
                break;
            }
        }
        if(flag == 'false') {
            appetizer.splice(index, i); // Pop that item if it's not exist
        }
    }
    $scope.appetizers = appetizer; // Re-assign
}
函数myFunction(){
var myAccess=“番茄”;
$scope.test=[];
var开胃菜=$scope.apperizers;
对于(变量i=0;i<$scope.apperizers.length;i++){
var标志='false';
对于(var j=0;j<$scope.apperizers[i].component.length;j++){
如果($scope.apperizers[i].component[j].name==myAccess){
flag='true';//检查它是否存在的标志
打破
}
}
如果(标志=='false'){
开胃菜。拼接(索引,i);//如果不存在该项目,则弹出该项目
}
}
$scope.appetizers=开胃菜;//重新分配
}
引入变量
flag
,它将告诉数组是否包含
myAccess
值。基于此,我从数组变量
开胃菜
中删除了该索引。最后,此数组变量将替换范围变量

我还没有检查密码。因此,如果合适的话,可以尝试使用这种逻辑从您的系统中实现


编辑-在比较@HMR answer:)时,我的代码看起来没有多大效果。

像这样将开胃菜推到数组中

function myFunction() {
var myAccess = ["tomato"];

  $scope.test = [];
  var appetizer = $scope.appetizers;
  for (var i = 0; i < appetizer.length; i++) {
    for (var j = 0; j < appetizer[i].ingredient.length; j++) {

        if (appetizer[i].ingredient[j].name === myAccess) {

             // what should i write here
             $scope.appetizers.push(appetizer[i]); // additional code here.
        }
      }
  }
  return null;    }
函数myFunction(){
var myAccess=[“番茄”];
$scope.test=[];
var开胃菜=$scope.apperizers;
对于(变量i=0;i
像这样将开胃菜放入您的阵列中

function myFunction() {
var myAccess = ["tomato"];

  $scope.test = [];
  var appetizer = $scope.appetizers;
  for (var i = 0; i < appetizer.length; i++) {
    for (var j = 0; j < appetizer[i].ingredient.length; j++) {

        if (appetizer[i].ingredient[j].name === myAccess) {

             // what should i write here
             $scope.appetizers.push(appetizer[i]); // additional code here.
        }
      }
  }
  return null;    }
函数myFunction(){
var myAccess=[“番茄”];
$scope.test=[];
var开胃菜=$scope.apperizers;
对于(变量i=0;i
这可能会对您有所帮助

var-app=angular.module(“myapp”,[]);
应用控制器(“测试控制”,功能($scope){
$scope.apperizers=[];
$scope.temp={
“食物”:{
“开胃菜”:[
{
“id”:1,
“图像”:../image/calamari。