arr1.indexOf(item) === index 是什么意思
时间: 2023-05-18 18:04:08 浏览: 183
这是一个 JavaScript 中用于判断数组中是否存在指定元素的方法,如果存在则返回该元素在数组中的索引值,否则返回 -1。其中,arr1 表示要进行判断的数组,item 表示要查找的元素,index 表示该元素在数组中的索引值。如果该元素在数组中的索引值等于 index,则表示该元素是第一次出现在数组中。
相关问题
handerPersonList(list,result,type){ // 获取所有 收藏人员 数据Id let empIds = this.getPersonEmpId(this.latelyList); let arr = []; if(list && list.length > 0){ for(let item of list){ let obj = Object.assign({},item); obj.admin = util.combineName(item); obj.id = ''; obj.aId = ''; obj.bId = ''; obj.picSrc = item.picSrc || require('@/assets/common_images/person.jpg'); // 设置收藏 if(empIds.indexOf(obj.empId) > -1){ let latelyUser = this.latelyList.find(it=>it.empId == obj.empId); if(latelyUser){ obj.id = latelyUser.id; } obj.isCollect = true; } else{ obj.isCollect = false; } arr.push(obj); } } if(type && type == 'allUser'){ this.paginationuser.total = result.pageControllerInfo.totalRecordCount; this.$refs.userTable.bodyWrapper.scrollTop = 0; this.userdata = arr; }else{ this.orgPersonList = arr; this.pagination.total = result.pageControllerInfo.totalRecordCount; this.$refs.employeeTable.bodyWrapper.scrollTop = 0; } },
这段代码主要是用来处理收藏人员列表数据的。它接收三个参数,分别是 `list`,`result` 和 `type`。
首先,代码会使用 `getPersonEmpId` 函数获取所有收藏人员的 ID,然后对 `list` 数组进行遍历,对每个元素进行处理。处理后的每个元素会被添加一些属性,比如 `admin`,`id`,`aId`,`bId`,`picSrc` 和 `isCollect` 等。其中,`admin` 表示人员名称,`id` 表示收藏人员 ID,`aId` 和 `bId` 分别表示一级部门和二级部门的 ID,`picSrc` 表示人员头像,`isCollect` 表示人员是否被收藏。
如果 `empIds.indexOf(obj.empId) > -1`,则表示当前人员已被收藏。此时,代码会在 `latelyList` 中查找该人员并获取其 ID,然后将该 ID 赋值给 `obj.id`。最后,设置 `obj.isCollect` 为 `true`。
如果 `empIds.indexOf(obj.empId) < 0`,则表示当前人员未被收藏。此时,代码会将 `obj.isCollect` 设置为 `false`。
最后,如果 `type` 的值为 `allUser`,则将处理后的数据赋值给 `this.userdata`,否则赋值给 `this.orgPersonList`。
解释 methods: { async fn() { let { data } = await instance.get("/index.json"); this.arr = data.cart.products; // console.log(data.cart.products); }, startLogin() { this.$router.push({path: '/login'}) }, addToCart(product) { this.isCar = false; const cartItem = this.cartItems.find(item => item.product.id === product.id); if (cartItem) { cartItem.quantity++; } else { this.cartItems.push({ product, quantity: 1 }); } }, removeFromCart(item) { this.isCar = true; const index = this.cartItems.indexOf(item); this.cartItems.splice(index, 1); } }, computed: { totalPrice() { return this.cartItems.reduce((total, item) => total + item.product.price * item.quantity, 0); } }, components: {CarItem, Tabbar}, beforeMount() { this.fn(); }, };
这是一个 Vue.js 组件的代码,包括了一些方法和计算属性。
- `fn()` 是一个异步方法,使用 Axios 库发送 GET 请求,并请求获取 `/index.json` 的数据,将 `data.cart.products` 赋值给 `this.arr`,同时打印出 `data.cart.products`。
- `startLogin()` 是一个方法,在点击时将路由跳转到 `/login`。
- `addToCart(product)` 是一个方法,用于将商品添加到购物车中。如果购物车中已经存在该商品,则将该商品的数量加一,否则将该商品添加到 `cartItems` 数组中。
- `removeFromCart(item)` 是一个方法,用于从购物车中删除指定商品。首先将 `isCar` 设为 true,然后查找 `cartItems` 数组中与参数 `item` 对象相等的元素,删除该元素。
- `totalPrice()` 是一个计算属性,用于计算购物车中所有商品的总价。
在组件的生命周期中,使用 `beforeMount()` 钩子函数调用了 `fn()` 方法,获取商品列表数据。同时还引入了 `CarItem` 和 `Tabbar` 两个子组件。
阅读全文