#javascript #arrays #vue.js
#javascript #массивы #vue.js
Вопрос:
результат моего запроса
absent: 0
attn: {21: {days: 5}, 22: {days: 5}, 23: {days: 3}}
daily_rate: 57.50798722044728
deduction: {4: {amount: 333.33}, 6: {amount: 222.2, },…}
4: {amount: 333.33,}
6: {amount: 222.2}
7: {amount: 2242}
8: {amount: 1127.5}
9: {amount: 1120}
В моем vue js у меня есть родительский массив и дочерний массив..Я понятия не имею, как объединить данные во вложенный массив
<tbody>
<tr v-for="(fetch, count) in payrollPayableArray"> -----> PARENT ARRAY
<td style="height:10px;">{{fetch.pay_class}}</td>
<td style="height:10px; color:red;">{{formatNum(fetch.absent * fetch.daily_rate)}}</td>
<td style="height:10px; color:red;">{{formatNum(fetch.late * fetch.rate_per_minute)}}</td>
<td style="height:10px; color:red;">{{formatNum(fetch.ut * fetch.rate_per_minute)}}</td>
<td style="height:10px;">{{formatNum(fetch.gross)}}</td>
<template v-for="(disp, index) in fetch.deduction"> --> CHILD ARRAY
<td>{{disp.amount}} <button type="button" @click="removeDeduction(index)"class="btn btn-danger btn-sm">X</button> </td>
</template>
</tr>
</tbody>
Эта функция не работает … Я надеюсь, что вы сможете мне помочь
removeDeduction(index) {
return this.payrollPayableArray.reduce((acc,item)=>{
const arr = Object.values(item.deduction).reduce((bcc,a,idx)=>{
Object.values(idx).splice(index,1)
})
})
},
моя проблема похожа на это https://jsfiddle.net/uLqfks3e/5 /
Комментарии:
1. ваши методы сокращения не возвращают ваш накопитель
acc
2.
.splice
изменяет массив на месте, ноObject.values(..)
создает новый массив, который выполняется первым. Это означает, что ваш код отбрасывает результат команды splice . Кроме того,idx
это число;Object.values(3)
ничего не производит.3. вы хотите удалить определенный элемент во вложенном массиве. правильно?
4. Одна из проблем заключается в том, что вам нужно сначала
count
выбрать конкретный элемент массива payroll. Вот один из возможных способов сделать это: jsfiddle.net/3cgb7fpL5. Хе-хе, да, это так 🙂 Вот
reduce
версия: jsfiddle.net/0Ldot75f (обратите внимание, что обратный вызов возвращает накопитель)