const showingChildren = child.filter((item) => { if (item.hidden) { return false; } else { this.onlyOneChild = item; return true; } });
时间: 2024-02-14 12:24:10 浏览: 17
这段代码的作用是过滤数组 `child` 中的元素,只保留满足条件的元素,并将满足条件的第一个元素赋值给 `this.onlyOneChild`。具体来说,`filter()` 方法用于过滤数组,接受一个回调函数作为参数,该回调函数用于判断数组中的元素是否满足条件,满足条件则返回 `true`,否则返回 `false`。在这个例子中,回调函数中判断元素的 `hidden` 属性是否为 `true`,如果是,则返回 `false`,表示该元素不满足条件,应该被过滤掉;如果不是,则将该元素赋值给 `this.onlyOneChild`,并返回 `true`,表示该元素满足条件,应该被保留。最终,过滤后的元素会组成一个新的数组 `showingChildren`,其中第一个满足条件的元素被赋值给了 `this.onlyOneChild`。
相关问题
let list = editSelect.filter(item=> item.vehicleId===record.vehicleId) const modifiedData = list.map(item => ({ ...item, totalAmount: item.mileageLast === 0 ? item.signMileage * item.billPrice : (item.mileageCurrent - item.mileageLast) * item.billPrice })); setMileagedata(modifiedData) setNewfilterData(modifiedData) }}totalAmount 四舍五入 保留两位小数 es6
要将`totalAmount`四舍五入并保留两位小数,你可以使用`toFixed()`方法。以下是在你的代码中添加四舍五入的修改示例:
```javascript
let list = editSelect.filter(item => item.vehicleId === record.vehicleId);
const modifiedData = list.map(item => ({
...item,
totalAmount: item.mileageLast === 0 ? (item.signMileage * item.billPrice).toFixed(2) : ((item.mileageCurrent - item.mileageLast) * item.billPrice).toFixed(2)
}));
setMileagedata(modifiedData);
setNewfilterData(modifiedData);
```
在上述代码中,使用`toFixed(2)`将计算得到的`totalAmount`保留两位小数。请注意,`toFixed()`方法返回一个字符串,所以你可以根据需要将其转换为数字类型。
希望这可以帮助到你!如有任何疑问,请随时询问。
const isExist = acc.find(item => item.id === cur.id); ^ TypeError: acc.find is not a function、
如果出现 `TypeError: acc.find is not a function` 的错误,那么很有可能是因为 `acc` 不是一个数组。请确保你传入的参数 `arr` 是一个数组类型,例如:
```javascript
const arr = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 1, name: 'Charlie' },
{ id: 3, name: 'David' },
{ id: 2, name: 'Eve' },
];
const uniqueArr = arr.reduce((acc, cur) => {
const isExist = acc.find(item => item.id === cur.id);
if (!isExist) {
acc.push(cur);
}
return acc;
}, []);
console.log(uniqueArr);
```
如果你传入的是一个不是数组的类型,那么可以通过将其转换为数组来解决这个问题,例如:
```javascript
const arr = '1,2,3,4,5';
const uniqueArr = Array.from(arr.split(',')).reduce((acc, cur) => {
const isExist = acc.find(item => item === cur);
if (!isExist) {
acc.push(cur);
}
return acc;
}, []);
console.log(uniqueArr);
```
在这个例子中,我们首先使用 `split` 方法将字符串转换为数组,通过 `Array.from` 方法将其转换为真正的数组类型。然后执行去重操作,最后输出结果。