#javascript #arrays #vue.js
#javascript #массивы #vue.js
Вопрос:
Это результат моего запроса, который я хочу получить в сумме
deduction
3: {total_ot: 0, total_days: 96, total_allowance: 0, wrk_id: 3, f_name: "JOHN", l_name: "DOE",…}
daily_rate: 560
date: {2020-09-24: {work_hours: 8, adj_hour: 0}, 2020-09-25: {work_hours: 8, adj_hour: 0},…}
deduction: {1: {amount: 700}, 2: {amount: 700}}
f_name: "JOHN"
l_name: "DOE"
m_name: null
total_allowance: 0
total_days: 96
total_ot: 0
wrk_id: 3
В моем вычисленном
deducted(){ const deducted = Object.values(this.workersSummaryData) return deducted.reduce((acc, item) =>{ console.log(item.deducted) if(item.deduction) return acc item.deduction; else return acc }, 0) } },
Комментарии:
1.
result of my query
— не могли бы вы опубликовать это в форме, которая выглядит так, как будто она находится в переменной javascript? на данный момент это просто выглядит как нечто, чего не было бы в javascript2. Основываясь на объекте дедукции, я думаю, вы захотите
return acc item.deduction.amount
3. @Jekrb — больше похоже
return acc Object.values(item.deduction).map(({amount}) => amount).reduce((a, b) => a b)
на — sincededuction
— это объект со свойствами, которые являются объектами со свойством, называемым amount : p4. Не беспокоясь, это дает результат
3200
, а не1400
5. @Jekrb да, вы можете привести пример?
Ответ №1:
Попробуйте использовать метод reduce() и получить amount
свойство для его суммирования:
const sum = Object.values(obj.deduction)
.reduce((a, {amount}) => {return a amount }, 0);
Пример:
let obj = {
total_ot: 0, total_days: 96, total_allowance: 0, wrk_id: 3, f_name: "JOHN", l_name: "DOE",
daily_rate: 560,
date: { '2020-09-24': { work_hours: 8, adj_hour: 0 }, '2020-09-25': { work_hours: 8, adj_hour: 0 } },
deduction: { 1: { amount: 700 }, 2: { amount: 700 } },
f_name: "JOHN",
l_name: "DOE",
m_name: null,
total_allowance: 0,
total_days: 96,
total_ot: 0,
wrk_id: 3
};
const sum = Object.values(obj.deduction)
.reduce((a, { amount }) => { return a amount }, 0);
console.log(sum);
Комментарии:
1. Я думаю, это не работает для меня, потому что я получаю такие данные
Object.values(this.workersSummaryData.deduction)
, которые я используюthis
2. Если бы вы могли указать в вопросе ДОПУСТИМЫЕ данные формата, то, возможно, вам можно было бы помочь, поскольку данные в вопросе недействительны javascript, поэтому никто не может их расшифровать, кроме вас @NotaPro
3. @NotaPro — нет .. ДАННЫЕ … допустимые ДАННЫЕ javascript
4. @NotaPro попробуйте написать
console.log(workersSummaryData.deduction)
раньшеObject.values
и посмотреть, какие значения отображаются5. @StepUp значение равно
UNDEFINED