Javascript 对象内部的数字之和
该函数获取一个数组,并返回对象中数字总和的数组。错在哪里Javascript 对象内部的数字之和,javascript,arrays,object,methods,Javascript,Arrays,Object,Methods,该函数获取一个数组,并返回对象中数字总和的数组。错在哪里 const car = [ { "name":"BMW", "price":"55 000", "country":"Germany", "security":"Hight" }, { "name":"Mitsubishi", "price":"93 000", "constructor":"Bar John", "door":"3", "cou
const car = [
{
"name":"BMW",
"price":"55 000",
"country":"Germany",
"security":"Hight"
},
{
"name":"Mitsubishi",
"price":"93 000",
"constructor":"Bar John",
"door":"3",
"country":"Japan",
},
{
"name":"Mercedes-benz",
"price":"63 000",
"country":"Germany",
"security":"Hight",
"people":"63"
}
];
function tur(car){
return car.map(()=>{
return car.reduce((a, b) => { return (parseInt(a)) + (parseInt(b))});
})
}
parseInt
无法处理空格,而且您正在迭代整个对象,因此需要提取属性:
cars.map(car => parseInt(car.price.replace(/\s/g, ''),10)).reduce((a, b) => a + b);
作为奖励,当它进入下一个阶段时,它已经被解析了。不要忘记为parseInt
指定一个基数(10),否则它会将0x20
等解释为十六进制
调用主结构cars
,因为它是一系列对象,而不是一个
理想情况下,在开始使用此函数之前,您应该先清理价格数据。
parseInt
无法处理空格,而且您正在迭代整个对象,因此需要提取属性:
cars.map(car => parseInt(car.price.replace(/\s/g, ''),10)).reduce((a, b) => a + b);
作为奖励,当它进入下一个阶段时,它已经被解析了。不要忘记为parseInt
指定一个基数(10),否则它会将0x20
等解释为十六进制
调用主结构cars
,因为它是一系列对象,而不是一个
理想情况下,您应该首先清理价格数据,然后再使用此函数。您忘记了为尝试将对象添加到一起的
reduce
提供初始值。例如,在reduce的第一次调用中,a
将是代表宝马的对象,b
将是代表三菱的对象。在reduce()
方法中,b
是一个对象,在调用时没有意义parseInt(b)
。另外,我建议添加您试图从代码中获得的预期输出。您忘记为您试图将对象添加到一起的reduce
提供初始值。例如,在reduce的第一次调用中,a
将是代表宝马的对象,b
将是代表三菱的对象。在reduce()
方法中,b
是一个对象,在调用时没有意义parseInt(b)
。我还建议添加您试图从代码中获得的预期输出。