Javascript 如果json数据是';在Javascrict中是一个正整数

Javascript 如果json数据是';在Javascrict中是一个正整数,javascript,Javascript,我收到了一条JSON记录。根据数据的顺序,数据集可能会有所不同。我需要单独的数据,因为它们稍后将用于另一个函数。(重量、苹果、香蕉) 我应该检查这个错误并将错误记录在数组中。每个错误都应该位于console.log中的数组中自己的行上 我不能那样做。我可以用.join('\n')在一个额外的行中输出它,但这样我就不再有数组了 第二个问题是,我无法在添加苹果和香蕉之前检查它们是否是完整的水果。我只能事后再做。但1.5+1.5等于3。这对我来说是正确的,但我检查错了。 对不起,整个console.l

我收到了一条JSON记录。根据数据的顺序,数据集可能会有所不同。我需要单独的数据,因为它们稍后将用于另一个函数。(重量、苹果、香蕉) 我应该检查这个错误并将错误记录在数组中。每个错误都应该位于console.log中的数组中自己的行上

我不能那样做。我可以用.join('\n')在一个额外的行中输出它,但这样我就不再有数组了

第二个问题是,我无法在添加苹果和香蕉之前检查它们是否是完整的水果。我只能事后再做。但1.5+1.5等于3。这对我来说是正确的,但我检查错了。 对不起,整个console.log。我只需要理解每个步骤

如何将每行错误单独记录为一个数组

我怎样才能事先检查这些结果,看看这些数据是否只是一个完整的正数

“严格使用”;
//要检查的数据
常数接收数据={
年龄:'二十',//仅限数字
水果:[{
类型:'香蕉',
金额:5
},
{
键入:“苹果”,
金额:1.5
},//只允许完整的水果。5是不允许的
{
类型:'香蕉',
金额:2
},
{
类型:'香蕉',
金额:1.5
},
{
键入:“苹果”,
金额:2
},
],
};
//检查年龄
常数年龄=‘年龄’;
常量权重数据=接收数据[年龄];
console.log(权重数据);
const validatewight=数学符号(weightData)//1=正确
//console.log(validatewight)//测试日志
//检查水果
常量水果=‘水果’;
常数水果数据=收到的数据[水果];
//控制台日志(数据)//测试日志
const resultFruits=水果数据.reduce(
(a){
类型,
数量
})=>((a[类型]=(a[类型]| | 0)+金额),a),{}
);
//console.log(resultFruits)//测试日志
const banana=‘banana’;
const resultBanana=结果果实[香蕉];
console.log(resultBanana);
const apple=‘apple’;
const resultaple=resultFruits[apple];
控制台日志(resultaple);
//console.log(resultBanana的类型)//测试日志
const validateApple=resultaple-数学楼层(resultaple)//0=真
const validateBanana=resultBanana-Math.floor(resultBanana);
//console.log(validateApp)//测试日志
const validateDataWeight=validatewight==1?“”:`${weightData}不是一个数字`;
常量验证数据=
ValidateApp===0?“”:`${resultaple}不是有效的苹果数`;
康斯特达巴纳纳酒店=
ValidateBanna==0?“”:`${resultBanana}不是有效的香蕉数`;
const validateData=[validateDataWeight,validateDataApple,validateDataBanana];

console.log(validateData.join('\n'))您可以使用数组
arr\u error
然后检查数据并将错误添加到数组中

arr_error = [];
// data to check
const d = {
  age: 'twenty', //only numbers
  fruits: [{
      type: 'banana',
      amount: 5
    },
    {
      type: 'apple',
      amount: 1.5
    }, //only whole fruits .5 is not allowed
    {
      type: 'banana',
      amount: 2
    },
    {
      type: 'banana',
      amount: 1.5
    },
    {
      type: 'apple',
      amount: 2
    },
  ],
};

for (const k in d){     
    if (k == "age" && ! Number.isInteger(d[k]) ){
       arr_error.push({"age": " not integer "});
    }
    if (k == "fruits"){    
      for (i=0;i<d[k].length;i++){
         hf = d[k][i];                  
         if ( ! Number.isInteger(hf["amount"]) ){
            arr_error.push(
              {"fruits_id":i, "err": "amount not int" }
            );
         }     
    
         //ckeck if is positive ,  number  > 0 
    
         if ( ! hf["amount"] > 0 ){
            arr_error.push(
              {"fruits_id":i, "err": "amount not positive" }
            );
         }        
    
      }
    }
}   
    
console.log(arr_error);

谢谢,效果很好。我还没有与
合作过
。对于
,我应该在不使用
的情况下学习ES6。
[
{age: " not integer "},
{fruits_id: 1 ,err: "amount not int"},
{fruits_id: 3 ,err: "amount not int"}
]