Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.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/3/arrays/12.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 Array.splice未返回正确的输出_Javascript_Arrays_Typescript_Ionic2 - Fatal编程技术网

Javascript Array.splice未返回正确的输出

Javascript Array.splice未返回正确的输出,javascript,arrays,typescript,ionic2,Javascript,Arrays,Typescript,Ionic2,我试图匹配两个数组,如果它们包含相同的值,它将从其中一个数组中删除元素。我尝试使用splice()方法。我试着阅读,但是输出是: new array ["SUGAR"] 然而,我希望实现这一输出: ["HYDROGENATED VEGETABLE↵OIL", "RAPESEED OIL", "PALM OIL", "SUNFLOWER OIL", "RAPESEED OIL", "PALM OIL"] 这是原始数组(unSafe): 这是我的代码: function breakArray()

我试图匹配两个数组,如果它们包含相同的值,它将从其中一个数组中删除元素。我尝试使用
splice()
方法。我试着阅读,但是输出是:

new array ["SUGAR"]
然而,我希望实现这一输出:

["HYDROGENATED VEGETABLE↵OIL", "RAPESEED OIL", "PALM OIL", "SUNFLOWER OIL", "RAPESEED OIL", "PALM OIL"]
这是原始数组(
unSafe
):

这是我的代码:

function breakArray() {
  let warning = this.navParams.get("warningResult");
  let unSafe = this.navParams.get("unSafeResult");

  console.log(unSafe);
  console.log(warning);

  for (var i = 0; i < warning.length; i++) {
    for (var j = 0; j < unSafe.length; j++) {
      if (warning[i] === unSafe[j]) {
        console.log('warning', i);
        console.log('unSafe', j);

        unSafe.splice(j, 1);

        console.log('new array', unSafe);
      }
    }
  }
}
函数breakArray(){
设warning=this.navParams.get(“warningResult”);
设unSafe=this.navParams.get(“unSafeResult”);
控制台日志(不安全);
控制台日志(警告);
对于(变量i=0;i
使用
过滤器
方法而不是
拼接
方法。您不想在正在迭代的数组上拼接

let unsaureray=[“糖”,“氢化蔬菜”↵油、菜籽油、棕榈油、葵花籽油、菜籽油、棕榈油];
让warningArray=[“糖”,“葵花籽油];
让filteredArray=未过滤的光线;
warningArray.forEach(函数(warningElement){
filteredArray=filteredArray.filter(函数(UnseeElement)){
返回unsafeElement!==warningElement;
});
});

控制台日志(filteredArray)似乎工作正常。返回不带“warning”元素的数组

函数breakArray(){
//设warning=this.navParams.get(“warningResult”);
//设unSafe=this.navParams.get(“unSafeResult”);
var warning=[“SUGAR”];
var不安全=[“糖”,“氢化蔬菜”↵油、菜籽油、棕榈油、葵花籽油、菜籽油、棕榈油];
//控制台日志(不安全);
//控制台日志(警告);
对于(变量i=0;ibreakArray()您需要确保
j
为0

//原始数组。
var不安全=[“糖”,“氢化蔬菜”↵油、菜籽油、棕榈油、葵花籽油、菜籽油、棕榈油];
//查找项目的索引。
让removeIndexStart=unsafe.indexOf('SUGAR');
//检查它是否存在。
如果(removeIndexStart>-1){
//返回已删除的项(从索引0中删除1项)
//并就地修改阵列。
移除的var=不安全的拼接(移除索引开始,1);
log('Removed:',JSON.stringify(Removed,null,2));
}
log('Modified:',JSON.stringify(不安全,null,2))

。作为控制台包装器{top:0;最大高度:100%!important;}
如果向后搜索,您始终可以拼接。是的,您可以,但是过滤器稍微简单了一点,它现在正在工作。正如console.log显示的0:“氢化蔬菜↵油“1:“菜籽油”2:“棕榈油”3:“葵花油”4:“菜籽油”5:“棕榈油”谢谢您的帮助
function breakArray() {
  let warning = this.navParams.get("warningResult");
  let unSafe = this.navParams.get("unSafeResult");

  console.log(unSafe);
  console.log(warning);

  for (var i = 0; i < warning.length; i++) {
    for (var j = 0; j < unSafe.length; j++) {
      if (warning[i] === unSafe[j]) {
        console.log('warning', i);
        console.log('unSafe', j);

        unSafe.splice(j, 1);

        console.log('new array', unSafe);
      }
    }
  }
}