Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.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 编写一个valueStock函数,将产品数组作为参数_Javascript_Arrays_Object - Fatal编程技术网

Javascript 编写一个valueStock函数,将产品数组作为参数

Javascript 编写一个valueStock函数,将产品数组作为参数,javascript,arrays,object,Javascript,Arrays,Object,编写一个valueStock函数,将产品数组作为参数。该函数必须返回具有每个产品名称和库存总值的对象的新安排 var products= [{ name: 'TV LCD', price: 100, stock: 50 }, { name: 'pc', price: 500, stock: 50 }, { name: 'Iphone', price: 1000, stock: 10 }] var valorStock= function(arreglo){ var array=[] f

编写一个valueStock函数,将产品数组作为参数。该函数必须返回具有每个产品名称和库存总值的对象的新安排

var products= [{ name: 'TV LCD', price: 100, stock: 50 }, { name: 'pc', price: 500, stock: 50 }, { name: 'Iphone', price: 1000, stock: 10 }]
var valorStock= function(arreglo){
  var array=[]
   for(var i=0; i<arreglo.length; i++){
      array[productos[i]["name"]]=productos[i]["price"]*["stock"]

   }
   return array
}
console.log(valorStock(productos))
var-products=[{name:'TV-LCD',价格:100,股票:50},{name:'pc',价格:500,股票:50},{name:'Iphone',价格:1000,股票:10}]
var valorStock=函数(arreglo){
变量数组=[]

对于(var i=0;i,您可以首先跟踪对象中的产品,然后使用
对象将其转换为数组。条目

var产品=[{
名称:“TV LCD”,
价格:100,
股票:50
}, {
名称:“pc”,
价格:500,
股票:50
}, {
名称:“Iphone”,
价格:1000,
股票:10
}]
var valorStock=函数(arreglo){
var result={};
arreglo.forEach({name,price,stock})=>{
结果[名称]=结果[名称]| | 0;
结果[名称]+=价格*股票;
});
返回Object.entries(result.map([k,v])=>({[k]:v}));
}

log(valorStock(products))
您可以这样做

var产品=[{
名称:“TV LCD”,
价格:100,
股票:50
}, {
名称:“pc”,
价格:500,
股票:50
}, {
名称:“Iphone”,
价格:1000,
股票:10
}]
var valorStock=函数(arreglo){
变量数组=[]
for(var i=0,p;p=arreglo[i];i++){
var obj={};
obj[p.name]=p.price*p.stock;
阵列推送(obj);
}
返回数组
}
//或者更好
var valorStock1=函数(arreglo){
返回arreglo.map(p=>{
var obj={};
obj[p.name]=p.price*p.stock;
返回obj;
});
}
控制台日志(valorStock(产品));

console.log(valorStock1(产品));
如果您利用和:

var产品=[{
名称:“TV LCD”,
价格:100,
股票:50
}, {
名称:“pc”,
价格:500,
股票:50
}, {
名称:“Iphone”,
价格:1000,
股票:10
}];
//这就是您需要的功能
const valueStock=arr=>arr.map(el=>({[el.name]:el.price*el.stock}));

console.log(valueStock(products));
谢谢!但我需要一种更简单的方式。使用push()。@GonAlb您可以简单地将
映射
版本转换为使用一个单独的数组,在迭代
产品
时,您可以
将新创建的对象推送到该数组中。而不是
productos[i][“price”]*[“stock”]
我想你需要说
productos[i][“价格”]*productos[i][“股票”]