javascript - V-Select 在一次选择中显示整个阵列
问题描述
我创建了一个对象,该对象同时具有国家和这些国家的值,我希望在数组中显示每个国家及其对应对象的另一个数组中的值。问题是,显示数组中的所有值都在 v-select 的一个选择行上输出。
我已将两个数组放入一个对象并将项目设置为我的对象,然后将项目文本设置为国家数组,将项目值设置为国家对应的值数组。
getCountries() {
let services = this.$store.state.services;
let countries = {};
let names = ['china','usa','malaysia','philippines','cambodia','myanmar','vietnam','indonesia','brazil','south_africa','united_kingdom','morocco','hong_kong','macau'];
let prices = [];
services.forEach(element => {
if (element['service'] == this.selectedService) {
names.forEach(country => {
if (element[country] !== null) {
prices.push(element[country]);
}
})
}
});
countries.name = names;
countries.price = prices;
console.log(countries)
return countries;
},
<v-select
v-model="selectedCountry"
v-validate="'required'"
:items="getCountries"
item-text="name"
item-value="price"
label="Select Country"
prepend-icon="filter_list"
required
></v-select>
V-Select 应该是这样的:
china
usa
malaysia
...
但它显示为:
china,usa,malaysia
解决方案
我为自己想出了一个解决方案。使用我的数据将对象放入数组中变得容易多了。:)
getCountries() {
let services = this.$store.state.services;
let names = ['china','usa','malaysia','philippines','cambodia','myanmar','vietnam','indonesia','brazil','south_africa','united_kingdom','morocco','hong_kong','macau'];
let prices = [];
let x = {};
let y = []
services.forEach(element => {
if (element['service'] == this.selectedService) {
names.forEach(country => {
if (element[country] !== null) {
x[country] = element[country];
y.push({name: country, price: element[country]})
}
})
}
});
console.log(y)
return y;
},
推荐阅读
- bash - 从 bash 切换到 zsh 后不会创建符号链接
- javascript - 更改按钮文本内容的问题
- python - 我正在执行此代码,并且收到 UnboundLocalError: local variable 'points' referenced before assignment
- android - 在来宾虚拟机上运行 Docker 和 Android 模拟器
- cassandra - 在 Cassandra 中旋转表格是不好的设计吗?
- python - 从二维 numpy 数组返回更高的浮点值
- visual-studio-code - 如何使用 VSCode 更改 Jest Runner 的 CLI 参数
- c# - 如何使用 C# EPPLUS 设置 Excel 折线图的数据标签位置
- flutter - 关于颤振 setState
- laravel - Laravel 8 Fortify - 2FA 仅当用户从新设备登录时