Javascript VueJS Axios JSON切片/过滤器不是函数

Javascript VueJS Axios JSON切片/过滤器不是函数,javascript,json,vue.js,vuejs2,axios,Javascript,Json,Vue.js,Vuejs2,Axios,我是编程新手,我将成为前端开发人员。作为练习的一部分,我正在尝试做一个简单的web应用程序 但切中要害 我在尝试筛选/切片JSON对象时被卡住了——我从控制台得到的唯一信息是:“切片/筛选不是函数”。我知道这些函数是用于数组的,但我不知道如何将JSON对象转换为JSON数组。我在网上找了很多工作人员,并试图实施,但没有成功 代码如下: <template> <div class="class"> <section v-if="errored"

我是编程新手,我将成为前端开发人员。作为练习的一部分,我正在尝试做一个简单的web应用程序

但切中要害

我在尝试筛选/切片JSON对象时被卡住了——我从控制台得到的唯一信息是:“切片/筛选不是函数”。我知道这些函数是用于数组的,但我不知道如何将JSON对象转换为JSON数组。我在网上找了很多工作人员,并试图实施,但没有成功

代码如下:

<template>
    <div class="class">
        <section v-if="errored">
            <p>We're sorry, we're not able to retrieve this information at the moment, please try back later</p>
        </section>

        <section v-else>
            <div v-if="loading">Loading...</div>

            <div class="row" v-else>
                <div>
                    <div v-for="vehicle in filteredVehicles">
                        <img v-for="car in vehicle.cars" v-bind:src="car.url" v-bind:alt="car.name">
                    </div>
                </div>
            </div>

        </section>
    </div> 

提前感谢您的帮助。

看起来您的数据是键/值对的对象。不幸的是,大多数浏览器不支持只提供对象值的数组:

return Object.values(this.vehicles)    // Array of vehicle objects
  .filter(function (v) {
    return v.name === ('aaa' || 'bbb')
  })
…但是有一种方法在很大程度上是受支持的,因此您可以通过两步过程获得值:

return Object.keys(this.vehicles)     // Array of keys in the JSON obj
  .map(key => this.vehicles[key])     // Array of vehicle objects
  .filter(function (v) {
    return v.name === ('aaa' || 'bbb')
  })

或者,如果您想使用类似于
lodash
的功能,则可以使用一些更方便的函数来处理对象。

看起来您的数据是一个键/值对对象。不幸的是,大多数浏览器不支持只提供对象值的数组:

return Object.values(this.vehicles)    // Array of vehicle objects
  .filter(function (v) {
    return v.name === ('aaa' || 'bbb')
  })
…但是有一种方法在很大程度上是受支持的,因此您可以通过两步过程获得值:

return Object.keys(this.vehicles)     // Array of keys in the JSON obj
  .map(key => this.vehicles[key])     // Array of vehicle objects
  .filter(function (v) {
    return v.name === ('aaa' || 'bbb')
  })

或者,如果您想使用类似于
lodash
的功能,这将为您提供一些更方便的处理对象的功能。

将其放在app.js文件中

Vue.filter('snippet',function (val) {
    return val.slice(0,100);
})
当你想使用它的时候,就像这样在你的html中放上snippest

<p class="card-text mb-auto">{{product.description | snippet}}</p>

{{product.description | snippet}


将其放入app.js文件中

Vue.filter('snippet',function (val) {
    return val.slice(0,100);
})
当你想使用它的时候,就像这样在你的html中放上snippest

<p class="card-text mb-auto">{{product.description | snippet}}</p>

{{product.description | snippet}


我们需要查看JSON的结构才能知道如何转换。我们需要查看JSON的结构才能知道如何转换。感谢您的快速回复!我会在早上检查的,因为现在已经是半夜了,在电脑前呆了很长时间,我已经筋疲力尽了。谢谢你的快速回复!我会在早上检查,因为现在是半夜,在电脑前呆了很长时间,我已经筋疲力尽了。