Avue中 在方法内 data.map((item) ={item.user;}) 如何获取到item.user
时间: 2024-02-23 08:58:40 浏览: 28
在这段代码中,`data` 可能是一个数组,`map` 方法会遍历这个数组并返回一个新的数组,新数组中的元素是根据原数组中的元素经过处理后得到的。在这里,`map` 方法的参数是一个函数,该函数接受一个参数 `item`,表示原数组中的当前元素。函数体中的代码 `item.user` 表示获取当前元素中的 `user` 属性的值。
因此,这段代码的意思是:遍历数组 `data` 中的每个元素,获取它们的 `user` 属性的值,将这些值组成一个新的数组并返回。注意,这段代码中使用的是箭头函数的简写形式,等价于下面的代码:
```
data.map(function(item) {
return item.user;
});
```
这里的函数接受一个参数 `item`,返回它的 `user` 属性的值。
相关问题
export function fetchDataCft(query_dict) { return new Promise((resolve, reject) => { queryCft(query_dict).then(response => { const data = response.data const total_count = response['total_count'] // console.log(total_count) resolve(data, total_count) }).catch(error => { reject(error) }) }) } getData() { if (Object.keys(this.query_dict_mark).length === 0) { // 初始化query_dict中problem_id__in的值 this.$delete(this.query_dict, 'problem_id__in') fetchDataCft(this.query_dict).then( (data, total_count) => { this.data_list = data; this.total_count1 = total_count; }, ) } else { fetchDataMark(this.query_dict_mark).then(data => { this.problem_id_list = data.map(item => item.problem_id) this.$set(this.query_dict, 'problem_id__in', this.problem_id_list) // this.query_dict['problem_id__in'] = this.problem_id_list fetchDataCft(this.query_dict).then((data, total_count) => { this.data_list = data; this.total_count1 = total_count; }) }) } // 获取当前用户的收藏列表(problem_id_favorite) fetchDataMark({'favorite': this.current_user_name}).then(data => { this.problem_id_favorite = data.map(item => item.problem_id) }) }, total_count1的值不是预期的,请帮忙优化代码
在 `fetchDataCft` 函数中, `resolve` 方法只接受一个参数,所以需要将 `data` 和 `total_count` 封装为一个对象传递。修改后的 `fetchDataCft` 函数如下:
```
export function fetchDataCft(query_dict) {
return new Promise((resolve, reject) => {
queryCft(query_dict)
.then(response => {
const data = response.data;
const total_count = response['total_count'];
resolve({ data, total_count });
})
.catch(error => {
reject(error);
});
});
}
```
在 `getData` 函数中,当 `Object.keys(this.query_dict_mark).length === 0` 时,会调用 `fetchDataCft` 函数,但是这个函数返回的是一个 Promise,需要使用 `then` 方法来处理异步操作。修改后的代码如下:
```
getData() {
if (Object.keys(this.query_dict_mark).length === 0) {
// 初始化query_dict中problem_id__in的值
this.$delete(this.query_dict, 'problem_id__in');
fetchDataCft(this.query_dict)
.then(({ data, total_count }) => {
this.data_list = data;
this.total_count1 = total_count;
})
.catch(error => {
console.error(error);
});
} else {
fetchDataMark(this.query_dict_mark)
.then(data => {
this.problem_id_list = data.map(item => item.problem_id);
this.$set(this.query_dict, 'problem_id__in', this.problem_id_list);
// this.query_dict['problem_id__in'] = this.problem_id_list
fetchDataCft(this.query_dict)
.then(({ data, total_count }) => {
this.data_list = data;
this.total_count1 = total_count;
})
.catch(error => {
console.error(error);
});
})
.catch(error => {
console.error(error);
});
}
// 获取当前用户的收藏列表(problem_id_favorite)
fetchDataMark({ favorite: this.current_user_name })
.then(data => {
this.problem_id_favorite = data.map(item => item.problem_id);
})
.catch(error => {
console.error(error);
});
},
```
这样,无论是在 `fetchDataCft` 函数中还是在 `getData` 函数中,都能够正确地处理异步操作,避免出现不符合预期的结果。
if (res && res.data && isSuccessCode(res.data) && res.data.rows) { let rowsArr = res.data.rows.map(item => { // 返回id和待解密字符串数组rows let obj = parseLicense(item.license_id) let user = this.userList.find(ele => { return ele.acuser_id === obj.acuser_id }) // 根据表格中license_id去查userList中对应LicenseId的UserName return { ...obj, user_name: user?.user_name, indexno: item.indexno, name_and_no: `${obj.provider_name}(${obj.provider_no})` } })
这段代码是对一个返回数据进行处理的过程。首先使用了短路运算符来判断 res 和 res.data 是否存在,并调用 isSuccessCode 函数判断是否成功获取数据且数据格式正确。如果满足条件,则对 res.data.rows 进行遍历处理,返回一个新的数组,该数组中包含了对每个 item.license_id 进行解密后得到的 obj,以及根据 obj 中的 acuser_id 在 this.userList 中匹配对应的 user,并将 user_name 添加到 obj 中,最终新数组的每个元素包含了解密后的 obj 的各个属性以及匹配到的 user 的 user_name 属性。
阅读全文