【问题标题】:typeahead with array list in vue js在vue js中使用数组列表预先输入
【发布时间】:2018-11-27 13:00:20
【问题描述】:

这是我的代码,现在我可以在 typeahead 字段中显示所有结果。但是缺少一些数据。如何将所有数据映射到一个数组中?

data() {
    return {
        list: [],
    }
}

axios.get('list', {})
.then(function (response) {
    self.list = response.data.map(x => x.name1);
})
.catch((error) => {
    console.log(error);
});

//Api return josn
[
{
    "id": 17,
    "name1": "Apple",
    "name2": "Apple2"
},
{
    "id": 237,
    "name1": "Orange",
    "name2": "Orange2"
}
]

现在,我的数组是 ['Apple','Oragne'] 但我想要我的数组 = ['Apple','Apple2','Orange','Orange2']

【问题讨论】:

    标签: vue.js


    【解决方案1】:

    有很多方法。你可以使用reduce来累积你想要的数组。

    另外,您的回复没有data 字段。

    代替:

    self.list = response.data.map(x => x.name1);
    

    用途:

    self.list = response.reduce((acc, item) => {
        acc.push(item.name1);
        acc.push(item.name2);
        return acc;
    }, []);
    

    https://jsfiddle.net/jmbldwn/h6v3mo9f/4/

    【讨论】:

    • 不适合我...还有其他解决方案吗?用地图怎么样
    • 我刚刚注意到您有一个不存在的多余的 .data 字段引用。减少确实有效。查看小提琴并查看控制台。
    • 我明白了,之前没有更多")" ;
    • 从小提琴复制粘贴的错字。固定。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-22
    • 1970-01-01
    相关资源
    最近更新 更多