如何使用javascript获取对象的属性值
How to get property values of object using javascript
我有一个具有多个属性和值的对象。如何一次取完?
在下面的代码中,产品有多个值。我想获取所有的价格,并使用java脚本求出它们的总和
代码如下。
var products = [
{name:"anti-glair", price:100, quantity:200, status:"available"},
{name:"Lens", price:300, quantity:35, status:"Un-available"},
{name:"Optics", price:150, quantity:500, status:"available"}
];
我试着像这个
console.log(products.price);
但它显示为未定义。
我也想要所有产品的总和。
products
指的是一个数组。您可以使用索引0访问该数组中的第一个对象,使用索引1访问第二个对象,等等。或者,您可以使用for
循环、products.forEach
或本问题答案中列出的许多其他方式循环访问该数组。
一旦有了对象,就可以使用所显示的语法访问其属性。
例如:
var products = [
{name:"anti-glair", price:100, quantity:200, status:"available"},
{name:"Lens", price:300, quantity:35, status:"Un-available"},
{name:"Optics", price:150, quantity:500, status:"available"}
];
console.log(products[0].price);
使用高阶函数。要获得一系列价格,
let prices = products.map(x => x.price)
综上所述,
let totalCost = prices.reduce((x, y) => x + y)
对于迭代和获取总和或价格,请使用Array#reduce
方法
var sum = products.reduce(function(a, b) {
// calculate the price and add with total
// multiply with `quantity` property if you want
return a + b.price;
// set initial value as 0
}, 0);
var products = [{
name: "anti-glair",
price: 100,
quantity: 200,
status: "available"
}, {
name: "Lens",
price: 300,
quantity: 35,
status: "Un-available"
}, {
name: "Optics",
price: 150,
quantity: 500,
status: "available"
}];
var sum = products.reduce(function(a, b) {
return a + b.price;
}, 0);
console.log(sum)
试试这就是你想要的。
var products = [
{name:"anti-glair", price:100, quantity:200, status:"available"},
{name:"Lens", price:300, quantity:35, status:"Un-available"},
{name:"Optics", price:150, quantity:500, status:"available"}
];
var TotalPrice = 0;
var obj = {};
for(var i = 0; i< products.length; i++){
TotalPrice = TotalPrice + products[i].price;
obj[i] = { price : products[i].price};
}
obj.total_price = TotalPrice;
console.log(obj);
在迭代其余数据之前,首先获取对象的长度:
var products = [
{name:"anti-glair", price:100, quantity:200, status:"available"},
{name:"Lens", price:300, quantity:35, status:"Un-available"},
{name:"Optics", price:150, quantity:500, status:"available"}
];
var sumPrices = 0;
for(i = 0; i < products.length; i++) {
console.log("Name: " + products[i].name + ", Price: " + products[i].price + ", Quantity: " + products[i].quantity[i] + ", Status: " + products[i].status);
sumPrices = sumPrices + products[i].price;
}
console.log("Total sum of prices: " + sumPrices);
相关文章:
- 序列化数据属性中对象的最可靠方法
- 识别没有ID或特定属性的对象
- JavaScript-用唯一属性标识对象
- JavaScript-通过类似的属性查找对象,并将其推送到一个新的数组中
- 如何创建共享某些属性的对象
- 如何指定在执行控制台时要显示的属性.log对象
- 如何按天、周、月对具有时间戳属性的对象进行分组
- 数.[属性] 是对象或构造函数的属性
- 如何使用第二个数组中对象的相关属性对对象数组进行排序
- 按属性对对象数组进行排序
- Javascript:如何制作一个包含4个具有相同属性的对象的数组
- 基于公共属性合并对象数组
- 未捕获的类型错误:属性'$'对象[object Window]的
- 从函数属性访问对象属性;不适用于Firefox
- find()方法返回具有不需要的属性的对象
- 在 Javascript 中创建具有自己属性的对象数组
- 如果我可以随时将任何属性插入对象,那么在javascript中创建类有什么用
- 通过对具有相同属性的对象进行分组,将数组减少为 A
- 从新对象的属性更新对象的属性,但前提是新对象上的属性不是未定义的
- 访问未命名对象的属性(在对象内)