Javascript 根据另一个数组的空元素从数组中删除元素

Javascript 根据另一个数组的空元素从数组中删除元素,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,我只想在另一个数组中存在空元素时从数组中删除元素。我有这个: var fruits=[“香蕉”、“纳兰贾”、“曼扎纳”、“芒果”、“弗雷萨”、“利蒙”、“利马”、“桑迪亚”]; var vegetales=[,“Ajo”,“Cebolla”,“Tomate”,“”,“Zanahoria”]; //输出应如下所示: //[“纳兰贾”、“芒果”、“弗雷萨”、“桑迪亚”] 函数myFunction(){ 用于(蔬菜中的var i){ if(蔬菜类[i]=''){ frutaAeliminar=水果[

我只想在另一个数组中存在空元素时从数组中删除元素。我有这个:

var fruits=[“香蕉”、“纳兰贾”、“曼扎纳”、“芒果”、“弗雷萨”、“利蒙”、“利马”、“桑迪亚”];
var vegetales=[,“Ajo”,“Cebolla”,“Tomate”,“”,“Zanahoria”];
//输出应如下所示:
//[“纳兰贾”、“芒果”、“弗雷萨”、“桑迪亚”]
函数myFunction(){
用于(蔬菜中的var i){
if(蔬菜类[i]=''){
frutaAeliminar=水果[i];
indexFruta=水果。indexOf(frutaAeliminar);
如果(indexfrata!=-1){
水果.拼接(indexFruta,1)
}
}
}
原木(水果);
}
myFunction()简单解决方案:

var fruits = ["Banana", "Naranja", "Manzana", "Mango", "Fresa", "Limón", "Lima", "Sandia"];
var vegetales = ["", "Ajo", "", "Cebolla", "Tomate", "", "", "Zanahoria"];
var result = [];
for(var i = 0;i<fruits.length;i++){
    if(vegetales[i]!=""){
        result.push(fruits[i]);
    }
}
console.log(result);
在此处运行:

var fruits=[“香蕉”、“纳兰贾”、“曼扎纳”、“芒果”、“弗雷萨”、“利蒙”、“利马”、“桑迪亚”];
var vegetales=[,“Ajo”,“Cebolla”,“Tomate”,“”,“Zanahoria”];
var结果=[];
对于(var i=0;i简单解:

var fruits = ["Banana", "Naranja", "Manzana", "Mango", "Fresa", "Limón", "Lima", "Sandia"];
var vegetales = ["", "Ajo", "", "Cebolla", "Tomate", "", "", "Zanahoria"];
var result = [];
for(var i = 0;i<fruits.length;i++){
    if(vegetales[i]!=""){
        result.push(fruits[i]);
    }
}
console.log(result);
在此处运行:

var fruits=[“香蕉”、“纳兰贾”、“曼扎纳”、“芒果”、“弗雷萨”、“利蒙”、“利马”、“桑迪亚”];
var vegetales=[,“Ajo”,“Cebolla”,“Tomate”,“”,“Zanahoria”];
var结果=[];

对于(var i=0;i我认为您弄错了,因为您在循环过程中更改了数组的长度。此解决方案使用第三个数组将结果推送到w/o更改原始数组

此外,还有一些快速提醒:

  • 使用
    for…in
    仅用于在对象键/值对上迭代,否则使用标准
    for
    循环
  • 不要忘记用
    var
    语句声明变量,否则会污染全局名称空间
  • var fruits=[“香蕉”、“纳兰贾”、“曼扎纳”、“芒果”、“弗雷萨”、“利蒙”、“利马”、“桑迪亚”];
    var vegetales=[,“Ajo”,“Cebolla”,“Tomate”,“”,“Zanahoria”];
    var i;
    var outputArr=[];
    //输出应如下所示:
    //[“纳兰贾”、“芒果”、“弗雷萨”、“桑迪亚”]
    函数myFunction(){
    
    对于(i=0;i我认为您弄错了,因为您在循环过程中更改了数组的长度。此解决方案使用第三个数组将结果推送到w/o更改原始数组

    此外,还有一些快速提醒:

  • 使用
    for…in
    仅用于在对象键/值对上迭代,否则使用标准
    for
    循环
  • 不要忘记用
    var
    语句声明变量,否则会污染全局名称空间
  • var fruits=[“香蕉”、“纳兰贾”、“曼扎纳”、“芒果”、“弗雷萨”、“利蒙”、“利马”、“桑迪亚”];
    var vegetales=[,“Ajo”,“Cebolla”,“Tomate”,“”,“Zanahoria”];
    var i;
    var outputArr=[];
    //输出应如下所示:
    //[“纳兰贾”、“芒果”、“弗雷萨”、“桑迪亚”]
    函数myFunction(){
    对于(i=0;i示例,使用ES6

    在三元结构中使用和使用
    &&
    ,使我们不必为
    而烦恼,如果不需要的话

    const fruits=[“香蕉”、“纳兰贾”、“曼扎纳”、“芒果”、“弗雷萨”、“利蒙”、“利马”、“桑迪亚”];
    const vegetales=[”“、“Ajo”、“cebola”、“Tomate”、“”“、”“、”Zanahoria“];
    /*仅在对应数组项不等于“”时拾取*/
    const newArray=fruits.filter((fruit,idx)=>(vegetales[idx]!==''&&fruit))
    console.log(newArray)
    使用ES6的示例

    在三元结构中使用和使用
    &&
    ,使我们不必为
    而烦恼,如果不需要的话

    const fruits=[“香蕉”、“纳兰贾”、“曼扎纳”、“芒果”、“弗雷萨”、“利蒙”、“利马”、“桑迪亚”];
    const vegetales=[,“Ajo”,“Cebolla”,“Tomate”,“”,“Zanahoria”];
    /*仅在对应数组项不等于“”时拾取*/
    const newArray=fruits.filter((fruit,idx)=>(vegetales[idx]!==''&&fruit))
    
    log(newArray)
    您可以使用相应的
    vegetales
    项的真实值进行筛选

    var fruits=[“香蕉”、“纳兰贾”、“曼扎纳”、“芒果”、“弗雷萨”、“利蒙”、“利马”、“桑迪亚”];
    蔬菜=[,“Ajo”,“Cebolla”,“Tomate”,“Zanahoria”],
    newArray=fruits.filter((uu,i)=>vegetales[i]);
    
    log(newArray)
    您可以使用相应的
    vegetales
    项的真实值进行筛选

    var fruits=[“香蕉”、“纳兰贾”、“曼扎纳”、“芒果”、“弗雷萨”、“利蒙”、“利马”、“桑迪亚”];
    蔬菜=[,“Ajo”,“Cebolla”,“Tomate”,“Zanahoria”],
    newArray=fruits.filter((uu,i)=>vegetales[i]);
    
    console.log(newArray)
    Slick-使我更加堕落!Slick-使我更加堕落!