Javascript使用IF语句填充数组

Javascript使用IF语句填充数组,javascript,arrays,Javascript,Arrays,是否有方法在数组中填充if条件 范例 cars = [ {id:1,color:'red'}, {id:2,color:'blue'}, {id:3,color:'blue'} ] 我需要创建一个新的数组,该数组将获得ID的值和一个新的字段类型 if color = red, type = 1, else type = 0. 我尝试了这个,但它对javascript不起作用 var newArray = [ for(var car in cars){ newI

是否有方法在数组中填充if条件

范例

cars = [
  {id:1,color:'red'},
  {id:2,color:'blue'},
  {id:3,color:'blue'}
]
我需要创建一个新的数组,该数组将获得ID的值和一个新的字段类型

if color = red, type = 1, else type = 0.
我尝试了这个,但它对javascript不起作用

var newArray = [
   for(var car in cars){
       newId: car.id,
       if(car.color == 'red'){
          type: '1',
       else
          type: '0'
   }
]
返回值应为

newArray = [
       {newId:1,type:'1'},
       {newId:2,type:'0'},
       {newId:3,type:'0'}
]
请提供帮助

您可以轻松地将原始阵列转换为新阵列

const cars=[{id:1,color:red},{id:2,color:blue},{id:3,color:blue}] const newArray=cars.mapcar=>{ newId:car.id, 类型:car.color=='red'?'1':'0' } console.infonewArray您可以轻松地将原始数组转换为新数组

const cars=[{id:1,color:red},{id:2,color:blue},{id:3,color:blue}] const newArray=cars.mapcar=>{ newId:car.id, 类型:car.color=='red'?'1':'0' }
console.infonewArray我相信这就是您想要的:

var newArray = [];
for(var car in cars) {
    var obj = {newId: car.id};
    if(car.color === 'red') {
        obj['type'] = '1';
    } else {
        obj['type'] = '0';
    }
    newArray.push(obj);
}

我相信这就是你想要的:

var newArray = [];
for(var car in cars) {
    var obj = {newId: car.id};
    if(car.color === 'red') {
        obj['type'] = '1';
    } else {
        obj['type'] = '0';
    }
    newArray.push(obj);
}

给定的数组是错误的,如果您的数组如下所示:

cars =[
  {id:1,color:"red"},
  {id:2,color:"blue"},
  {id:3,color:"blue"}
];
那么你应该这样做:

var newArray = cars.map((car) => { let type; if(car.color === "blue") type = 1; else type = 0; return { id: car.id, color: car.color, type }})

给定的数组是错误的,如果您的数组如下所示:

cars =[
  {id:1,color:"red"},
  {id:2,color:"blue"},
  {id:3,color:"blue"}
];
那么你应该这样做:

var newArray = cars.map((car) => { let type; if(car.color === "blue") type = 1; else type = 0; return { id: car.id, color: car.color, type }})

请尝试使用以下代码:

     var newArray = [];
      for(var car in cars){
         if(car.color == 'red'){
             newArray.push({newId: car.id,type: '1'});
           } else {
              newArray.push({newId: car.id,type: '0'});
           }
       }

请尝试使用以下代码:

     var newArray = [];
      for(var car in cars){
         if(car.color == 'red'){
             newArray.push({newId: car.id,type: '1'});
           } else {
              newArray.push({newId: car.id,type: '0'});
           }
       }

这就是Array Map函数的用途,您可以从另一个数组创建

但是,您的数组错误,已在下面的代码中更正:

cars =[
    {id:1,color:'red'},
    {id:2,color:'blue'},
    {id:3,color:'blue'}
]
newCarArray=cars.map(function(car){
    if(car.color =='red'){
         return {newId:car.id, type:1}
    }
     return {newId:car.id, type:0}
})
console.log (newCarArray)

这就是Array Map函数的用途,您可以从另一个数组创建

但是,您的数组错误,已在下面的代码中更正:

cars =[
    {id:1,color:'red'},
    {id:2,color:'blue'},
    {id:3,color:'blue'}
]
newCarArray=cars.map(function(car){
    if(car.color =='red'){
         return {newId:car.id, type:1}
    }
     return {newId:car.id, type:0}
})
console.log (newCarArray)


指定的对象错误:cars=[[id:1,颜色:红色],[id:2,颜色:蓝色],[id:3,颜色:蓝色]];您的数组/对象语法不正确。每个car条目应该看起来像{id:1,color:'red'}新的对象类型属性应该是数字1或0,还是字符串1或0?你的问题说明了这两个方面。不介意语法这只是一个表示-为什么不使用所有答案中所示的标准JS对象文字语法?我修正了语法,在适当的地方使用对象文字。我希望您指定的对象是错误的:cars=[[id:1,颜色:红色],[id:2,颜色:蓝色],[id:3,颜色:蓝色];您的数组/对象语法不正确。每个car条目应该看起来像{id:1,color:'red'}新的对象类型属性应该是数字1或0,还是字符串1或0?你的问题说明了这两个方面。不介意语法这只是一个表示-为什么不使用所有答案中所示的标准JS对象文字语法?我修正了语法,在适当的地方使用对象文字。我希望这样可以修改原始值。看起来OP不想这样做。这会修改原始值。看起来OP不想这么做很酷!这是最好的答案,对我来说很有用。我将遵循这一点。非常感谢你。嗨,phil,如果你能把if语句写成字符串,你会有可能吗?因为我需要将其应用于字符串问题。我只是使用了一个小样本的表示来显示我的problem@ReyNorbertBesmonte你的意思是1和0值应该是字符串吗?如果是这样,你被要求澄清这一点。。如果红色=这是红色,我们就做吧,否则这不是红色。我让它工作起来了。非常感谢你。。。它似乎在IE上有一个兼容性问题。它说它有语法错误。我需要找到解决这个问题的办法。在Edge、Firefox和Chrome中运行良好。酷!这是最好的答案,对我来说很有用。我将遵循这一点。非常感谢你。嗨,phil,如果你能把if语句写成字符串,你会有可能吗?因为我需要将其应用于字符串问题。我只是使用了一个小样本的表示来显示我的problem@ReyNorbertBesmonte你的意思是1和0值应该是字符串吗?如果是这样,你被要求澄清这一点。。如果红色=这是红色,我们就做吧,否则这不是红色。我让它工作起来了。非常感谢你。。。它似乎在IE上有一个兼容性问题。它说它有语法错误。我需要找到解决这个问题的办法。在Edge、Firefox和Chrome中工作正常。对不起,第二个应该是type=0对不起,第二个应该是type=0