Bộ lọc bên trong bộ lọc javascript

Tôi đang gặp sự cố khi lọc dữ liệu từ API dựa trên thông thường của họ. Vì vậy, lỗi tôi đang gặp phải là một cách ngu ngốc. Which is

import React, { useContext } from 'react'
import { BookContext } from '../../context/books'

const Filters = [] => {
    const {filters:{regularPrice, updateFilters}}= useContext[BookContext]
    return [
        

Regular Price

all $0 - $10 $10 - $20 Over $20
] } export default Filters
0 Lỗi đang hiển thị trên dòng mà tôi đang chuyển các giá trị cho cảnh. Tôi có thể bị mù. Tôi thực sự sẽ đánh giá cao một số trợ giúp. Thank you very many

Nội dung chính Hiển thị

  • API phản hồi lọc với bộ lọc đầu ra cho SDK JavaScript
  • Bộ lọc đầu ra là gì?
  • Before when started
  • API lọc phản hồi
  • Chúng tôi đã làm nó như thế nào?
  • Use data
  • This is full code
  • Tiếp theo là gì?
  • Có cần hỗ trợ không?
  • API lọc là gì?
  • Làm thế nào để bạn tạo bộ lọc trong JavaScript?
  • Bạn có thể lọc một đối tượng JavaScript không?
  • Làm thế nào để bạn lọc dữ liệu trong một người gửi thư?

Bối cảnh sách

import React, {useState, useEffect} from 'react'
import URL from '../utilis/URL';
const BookContext = React.createContext[];
export default function BooksProvider[{ children }] {
  
  const [data, setData] = useState[[]]
  const [filters, setFilters]= useState[{
    regularPrice:"",
    length:""
   
  }]
  
  /*fetching data */ 
  const fetchData = async [] => {
    const response = await fetch[URL];
    const result = await response.json[];  
    console.log[result]
    setData[result];
  };

  useEffect[[]=>{
    fetchData[];
  },[]]

  const updateFilters = e => {
    const type = e.target.type;
    const filter = e.target.name;
    const value = e.target.value;
    let filterValue;
    if [type === "checkbox"] {
      filterValue = e.target.checked;
    } else if [type === "radio"] {
      value === "all" ? [filterValue = value] : [filterValue = parseInt[value]];
    } else {
      filterValue = value;
    }
    setFilters[{ ...filters, [filter]: filterValue }];
  };

  /* filtering price books */ 
  React.useLayoutEffect[[] => {
    let newBooks = [...data].sort[[a, b] => a.regularPrice - b.regularPrice];
    const { regularPrice } = filters;  
    if [regularPrice !== "all"] {
      newBooks = newBooks.filter[item => {
        if [regularPrice === 0] {
          return item.regularPrice  10 && item.regularPrice < 20;
        } else {
          return item.regularPrice > 20;
        }
      }];
    }
  }, [filters, data]];

return [
    
      {children}
    
  ];
}
export {BookContext, BooksProvider}

filter

import React, { useContext } from 'react'
import { BookContext } from '../../context/books'

const Filters = [] => {
    const {filters:{regularPrice, updateFilters}}= useContext[BookContext]
    return [
        

Regular Price

all $0 - $10 $10 - $20 Over $20
] } export default Filters

API phản hồi lọc với bộ lọc đầu ra cho SDK JavaScript

Temboo có thể giúp bạn giảm bớt sự phức tạp của API phản hồi. Chỉ cần xác định một hoặc nhiều bộ lọc đầu tiên khi bạn gọi là CHOEO. Bộ lọc đầu ra khi bạn gọi một vũ đạo

Bộ lọc đầu ra là gì?

Nó có một bộ lọc chỉ trả về dữ liệu mà bạn quan tâm

Nhiều API trả về rất nhiều dữ liệu JSON hoặc XML phức tạp có thể khó phân tích. Chúng ta hãy xem cách chúng ta có thể sử dụng bộ lọc đầu ra với SDK JavaScript để làm cho API phản hồi dễ làm việc hơn

Before when started

Đảm bảo rằng bạn đã trải qua hướng dẫn bắt đầu của JavaScript, sử dụng Google> Geocode> GeocodeByeAddress Choreo. Trong các bước sau, chúng tôi sẽ xây dựng theo hướng dẫn đó bằng cách bổ sung các bộ lọc đầu ra

API lọc phản hồi

1 bắt đầu bằng cách chạy lại hướng dẫn bắt đầu một lần nữa và sau đó xem bảng điều khiển. Xem phản hồi XML? . Bắt đầu bằng cách chạy lại hướng dẫn Bắt đầu, sau đó xem bảng điều khiển. Xem phản hồi XML? .

2 Điều gì nếu thông tin duy nhất chúng ta cần cho ứng dụng của mình là

import React, { useContext } from 'react'
import { BookContext } from '../../context/books'

const Filters = [] => {
    const {filters:{regularPrice, updateFilters}}= useContext[BookContext]
    return [
        

Regular Price

all $0 - $10 $10 - $20 Over $20
] } export default Filters
1 và một bộ sưu tập cá nhân
import React, { useContext } from 'react'
import { BookContext } from '../../context/books'

const Filters = [] => {
    const {filters:{regularPrice, updateFilters}}= useContext[BookContext]
    return [
        

Regular Price

all $0 - $10 $10 - $20 Over $20
] } export default Filters
2 tạo nên địa chỉ đó? . Thêm khối mã bên dưới trước dòng mã này.
import React, { useContext } from 'react'
import { BookContext } from '../../context/books'

const Filters = [] => {
    const {filters:{regularPrice, updateFilters}}= useContext[BookContext]
    return [
        

Regular Price

all $0 - $10 $10 - $20 Over $20
] } export default Filters
3 Phương thức. Điều gì sẽ xảy ra nếu thông tin duy nhất chúng tôi cần cho đơn đăng ký của mình là
import React, { useContext } from 'react'
import { BookContext } from '../../context/books'

const Filters = [] => {
    const {filters:{regularPrice, updateFilters}}= useContext[BookContext]
    return [
        

Regular Price

all $0 - $10 $10 - $20 Over $20
] } export default Filters
1 và một tập hợp các cá nhân
import React, { useContext } from 'react'
import { BookContext } from '../../context/books'

const Filters = [] => {
    const {filters:{regularPrice, updateFilters}}= useContext[BookContext]
    return [
        

Regular Price

all $0 - $10 $10 - $20 Over $20
] } export default Filters
2 tạo nên địa chỉ đó? . Thêm khối mã bên dưới trước dòng mã này. phương pháp
import React, { useContext } from 'react'
import { BookContext } from '../../context/books'

const Filters = [] => {
    const {filters:{regularPrice, updateFilters}}= useContext[BookContext]
    return [
        

Regular Price

all $0 - $10 $10 - $20 Over $20
] } export default Filters
3.
// Add an output filter to extract the full address
geocodeByAddressChoreo.addOutputFilter['address', '/GeocodeResponse/result/formatted_address', 'Response'];
// Add an output filter to extract the collection of address long_name components
geocodeByAddressChoreo.addOutputFilter['components', '/GeocodeResponse/result/address_component/long_name', 'Response'];

Đừng cố chạy mã của bạn, chúng tôi sẽ giải thích chính xác những dòng mã đó có ý nghĩa gì trước đó

Chúng tôi đã làm nó như thế nào?

Trước khi hiển thị một số thủ thuật thu gọn để truy cập các yếu tố riêng lẻ trong dữ liệu, chúng ta hãy xem cách tạo bộ lọc. Như chúng ta đã thấy ở trên, mỗi bộ lọc đầu tiên được xây dựng với ba tham số, ở định dạng

import React, { useContext } from 'react'
import { BookContext } from '../../context/books'

const Filters = [] => {
    const {filters:{regularPrice, updateFilters}}= useContext[BookContext]
    return [
        

Regular Price

all $0 - $10 $10 - $20 Over $20
] } export default Filters
4

Lúc đầu, nó có vẻ khó hiểu, nhưng hãy bước qua công việc tái tạo hai bộ lọc đầu ra từ đầu để hiểu những gì đang xảy ra

Đối tượng 1A

import React, { useContext } from 'react'
import { BookContext } from '../../context/books'

const Filters = [] => {
    const {filters:{regularPrice, updateFilters}}= useContext[BookContext]
    return [
        

Regular Price

all $0 - $10 $10 - $20 Over $20
] } export default Filters
5 được sử dụng để chỉ định các đầu vào sẽ được truyền cho vũ đạo. Bộ lọc đầu ra cũng là một loại đầu vào vũ đạo, vì vậy chúng tôi sẽ thêm đầu của chúng tôi vào đối tượng
import React, { useContext } from 'react'
import { BookContext } from '../../context/books'

const Filters = [] => {
    const {filters:{regularPrice, updateFilters}}= useContext[BookContext]
    return [
        

Regular Price

all $0 - $10 $10 - $20 Over $20
] } export default Filters
5. Để tìm tập hợp đầu vào mà chúng tôi đã sử dụng để thêm bộ lọc đầu vào vị trí địa lý, chỉ cần nhìn lại dòng sau trong mã của bạn. Đối tượng a
import React, { useContext } from 'react'
import { BookContext } from '../../context/books'

const Filters = [] => {
    const {filters:{regularPrice, updateFilters}}= useContext[BookContext]
    return [
        

Regular Price

all $0 - $10 $10 - $20 Over $20
] } export default Filters
5 được sử dụng để chỉ định các đầu vào sẽ được chuyển đến Choreo. Bộ lọc đầu ra cũng là một loại đầu vào Choreo, vì vậy chúng ta sẽ thêm đầu vào của mình vào đối tượng
import React, { useContext } from 'react'
import { BookContext } from '../../context/books'

const Filters = [] => {
    const {filters:{regularPrice, updateFilters}}= useContext[BookContext]
    return [
        

Regular Price

all $0 - $10 $10 - $20 Over $20
] } export default Filters
5. Để tìm bộ đầu vào mà chúng tôi đã sử dụng để thêm Bộ lọc đầu ra mã hóa địa lý, chỉ cần nhìn lại dòng sau trong mã của bạn.
import React, {useState, useEffect} from 'react'
import URL from '../utilis/URL';
const BookContext = React.createContext[];
export default function BooksProvider[{ children }] {
  
  const [data, setData] = useState[[]]
  const [filters, setFilters]= useState[{
    regularPrice:"",
    length:""
   
  }]
  
  /*fetching data */ 
  const fetchData = async [] => {
    const response = await fetch[URL];
    const result = await response.json[];  
    console.log[result]
    setData[result];
  };

  useEffect[[]=>{
    fetchData[];
  },[]]

  const updateFilters = e => {
    const type = e.target.type;
    const filter = e.target.name;
    const value = e.target.value;
    let filterValue;
    if [type === "checkbox"] {
      filterValue = e.target.checked;
    } else if [type === "radio"] {
      value === "all" ? [filterValue = value] : [filterValue = parseInt[value]];
    } else {
      filterValue = value;
    }
    setFilters[{ ...filters, [filter]: filterValue }];
  };

  /* filtering price books */ 
  React.useLayoutEffect[[] => {
    let newBooks = [...data].sort[[a, b] => a.regularPrice - b.regularPrice];
    const { regularPrice } = filters;  
    if [regularPrice !== "all"] {
      newBooks = newBooks.filter[item => {
        if [regularPrice === 0] {
          return item.regularPrice  10 && item.regularPrice < 20;
        } else {
          return item.regularPrice > 20;
        }
      }];
    }
  }, [filters, data]];

return [
    
      {children}
    
  ];
}
export {BookContext, BooksProvider}
5

Sau khi xác định đầu vào mà chúng tôi muốn lọc, hãy thêm

import React, { useContext } from 'react'
import { BookContext } from '../../context/books'

const Filters = [] => {
    const {filters:{regularPrice, updateFilters}}= useContext[BookContext]
    return [
        

Regular Price

all $0 - $10 $10 - $20 Over $20
] } export default Filters
7 như được hiển thị bên dưới.
import React, { useContext } from 'react'
import { BookContext } from '../../context/books'

const Filters = [] => {
    const {filters:{regularPrice, updateFilters}}= useContext[BookContext]
    return [
        

Regular Price

all $0 - $10 $10 - $20 Over $20
] } export default Filters
8

2A

import React, { useContext } from 'react'
import { BookContext } from '../../context/books'

const Filters = [] => {
    const {filters:{regularPrice, updateFilters}}= useContext[BookContext]
    return [
        

Regular Price

all $0 - $10 $10 - $20 Over $20
] } export default Filters
9 là bất cứ điều gì chúng ta muốn. Nó có thể là
// Add an output filter to extract the full address
geocodeByAddressChoreo.addOutputFilter['address', '/GeocodeResponse/result/formatted_address', 'Response'];
// Add an output filter to extract the collection of address long_name components
geocodeByAddressChoreo.addOutputFilter['components', '/GeocodeResponse/result/address_component/long_name', 'Response'];
0 hoặc
// Add an output filter to extract the full address
geocodeByAddressChoreo.addOutputFilter['address', '/GeocodeResponse/result/formatted_address', 'Response'];
// Add an output filter to extract the collection of address long_name components
geocodeByAddressChoreo.addOutputFilter['components', '/GeocodeResponse/result/address_component/long_name', 'Response'];
1 hoặc
// Add an output filter to extract the full address
geocodeByAddressChoreo.addOutputFilter['address', '/GeocodeResponse/result/formatted_address', 'Response'];
// Add an output filter to extract the collection of address long_name components
geocodeByAddressChoreo.addOutputFilter['components', '/GeocodeResponse/result/address_component/long_name', 'Response'];
2, miễn phí là mỗi bộ lọc đầu ra có một
import React, { useContext } from 'react'
import { BookContext } from '../../context/books'

const Filters = [] => {
    const {filters:{regularPrice, updateFilters}}= useContext[BookContext]
    return [
        

Regular Price

all $0 - $10 $10 - $20 Over $20
] } export default Filters
9 số lượng hoặc chữ cái duy nhất. Đây là cách chúng tôi nói với Temboo để dán nhãn một phần thông tin vào kết quả khi được trả về. Trong ví dụ của chúng tôi, chúng tôi đã gọi bộ sưu tập các yếu tố thành phần địa chỉ của chúng tôi
// Add an output filter to extract the full address
geocodeByAddressChoreo.addOutputFilter['address', '/GeocodeResponse/result/formatted_address', 'Response'];
// Add an output filter to extract the collection of address long_name components
geocodeByAddressChoreo.addOutputFilter['components', '/GeocodeResponse/result/address_component/long_name', 'Response'];
4. Chúng tôi đã gọi địa chỉ đầy đủ
// Add an output filter to extract the full address
geocodeByAddressChoreo.addOutputFilter['address', '/GeocodeResponse/result/formatted_address', 'Response'];
// Add an output filter to extract the collection of address long_name components
geocodeByAddressChoreo.addOutputFilter['components', '/GeocodeResponse/result/address_component/long_name', 'Response'];
5. A
import React, { useContext } from 'react'
import { BookContext } from '../../context/books'

const Filters = [] => {
    const {filters:{regularPrice, updateFilters}}= useContext[BookContext]
    return [
        

Regular Price

all $0 - $10 $10 - $20 Over $20
] } export default Filters
9 là bất cứ thứ gì chúng ta muốn. Nó có thể là
// Add an output filter to extract the full address
geocodeByAddressChoreo.addOutputFilter['address', '/GeocodeResponse/result/formatted_address', 'Response'];
// Add an output filter to extract the collection of address long_name components
geocodeByAddressChoreo.addOutputFilter['components', '/GeocodeResponse/result/address_component/long_name', 'Response'];
0 hoặc
// Add an output filter to extract the full address
geocodeByAddressChoreo.addOutputFilter['address', '/GeocodeResponse/result/formatted_address', 'Response'];
// Add an output filter to extract the collection of address long_name components
geocodeByAddressChoreo.addOutputFilter['components', '/GeocodeResponse/result/address_component/long_name', 'Response'];
1 hoặc
// Add an output filter to extract the full address
geocodeByAddressChoreo.addOutputFilter['address', '/GeocodeResponse/result/formatted_address', 'Response'];
// Add an output filter to extract the collection of address long_name components
geocodeByAddressChoreo.addOutputFilter['components', '/GeocodeResponse/result/address_component/long_name', 'Response'];
2, miễn là mỗi bộ lọc đầu ra có một
import React, { useContext } from 'react'
import { BookContext } from '../../context/books'

const Filters = [] => {
    const {filters:{regularPrice, updateFilters}}= useContext[BookContext]
    return [
        

Regular Price

all $0 - $10 $10 - $20 Over $20
] } export default Filters
9 số hoặc chữ cái duy nhất. Đây là cách chúng tôi yêu cầu Temboo gắn nhãn một phần thông tin kết quả khi nó được trả về. Trong ví dụ của chúng tôi, chúng tôi đã gọi bộ sưu tập các phần tử địa chỉ của chúng tôi_______94. Chúng tôi đã gọi địa chỉ đầy đủ
// Add an output filter to extract the full address
geocodeByAddressChoreo.addOutputFilter['address', '/GeocodeResponse/result/formatted_address', 'Response'];
// Add an output filter to extract the collection of address long_name components
geocodeByAddressChoreo.addOutputFilter['components', '/GeocodeResponse/result/address_component/long_name', 'Response'];
5

3

// Add an output filter to extract the full address
geocodeByAddressChoreo.addOutputFilter['address', '/GeocodeResponse/result/formatted_address', 'Response'];
// Add an output filter to extract the collection of address long_name components
geocodeByAddressChoreo.addOutputFilter['components', '/GeocodeResponse/result/address_component/long_name', 'Response'];
6 được sử dụng để xác định, thông qua đường dẫn XPath hoặc JSON, vị trí của [các] mục cụ thể mà bạn muốn bộ lọc đầu ra của mình quay lại. Để biết thêm giải thích sâu sắc về đường dẫn dữ liệu và kiểu dữ liệu, hãy xem hướng dẫn của chúng tôi về JSON & XML để biết các bộ lọc đầu ra. Dưới đây là các đường dẫn mà chúng tôi đã sử dụng khi chỉ định các bộ lọc đầu ra của chúng tôi trước đó. ____96 được sử dụng để xác định, thông qua XPath hoặc đường dẫn JSON, vị trí của [các] mục cụ thể mà bạn muốn Bộ lọc đầu ra của mình trả về. Để được giải thích sâu hơn về đường dẫn dữ liệu và loại dữ liệu, hãy xem hướng dẫn của chúng tôi về JSON & XML cho Bộ lọc đầu ra. Dưới đây là các đường dẫn mà chúng tôi đã sử dụng khi chỉ định Bộ lọc đầu ra trước đó.
import React, { useContext } from 'react'
import { BookContext } from '../../context/books'

const Filters = [] => {
    const {filters:{regularPrice, updateFilters}}= useContext[BookContext]
    return [
        

Regular Price

all $0 - $10 $10 - $20 Over $20
] } export default Filters
4

thứ 4

// Add an output filter to extract the full address
geocodeByAddressChoreo.addOutputFilter['address', '/GeocodeResponse/result/formatted_address', 'Response'];
// Add an output filter to extract the collection of address long_name components
geocodeByAddressChoreo.addOutputFilter['components', '/GeocodeResponse/result/address_component/long_name', 'Response'];
7 là tên của dữ liệu đầu ra vũ đạo mà chúng tôi đang áp dụng bộ lọc đầu ra của mình. Những cái tên này có thể được tìm thấy trong mỗi phần đầu của Choreo trên trang web của chúng tôi. Trong hầu hết các trường hợp, tên đầu ra vũ đạo có liên quan sẽ bị phản hồi, như trong ảnh chụp màn hình dưới đây. Tuy nhiên, như bạn có thể thấy, chúng ta cũng có thể lấy lại vĩ độ và kinh độ trong dàn hợp xướng đặc biệt này. ____97 là tên của dữ liệu đầu ra Choreo mà chúng tôi đang áp dụng bộ lọc đầu ra của mình cho. Những tên này có thể được tìm thấy trong phần đầu ra của mỗi Choreo trên trang web của chúng tôi. Trong hầu hết các trường hợp, tên đầu ra Choreo có liên quan sẽ là Phản hồi, như trong ảnh chụp màn hình bên dưới. Tuy nhiên, như bạn có thể thấy, chúng tôi cũng có thể truy xuất Vĩ độ và Kinh độ trong Choreo cụ thể này

This is full code

Mã hoàn chỉnh tận dụng hai bộ lọc đầu ra. Nó sẽ giống như thế này

Mã JavaScript

import React, { useContext } from 'react'
import { BookContext } from '../../context/books'

const Filters = [] => {
    const {filters:{regularPrice, updateFilters}}= useContext[BookContext]
    return [
        

Regular Price

all $0 - $10 $10 - $20 Over $20
] } export default Filters
0

Mã proxy

import React, { useContext } from 'react'
import { BookContext } from '../../context/books'

const Filters = [] => {
    const {filters:{regularPrice, updateFilters}}= useContext[BookContext]
    return [
        

Regular Price

all $0 - $10 $10 - $20 Over $20
] } export default Filters
1

Bây giờ bạn sẽ thấy các đầu ra riêng lẻ cho từng địa chỉ

// Add an output filter to extract the full address
geocodeByAddressChoreo.addOutputFilter['address', '/GeocodeResponse/result/formatted_address', 'Response'];
// Add an output filter to extract the collection of address long_name components
geocodeByAddressChoreo.addOutputFilter['components', '/GeocodeResponse/result/address_component/long_name', 'Response'];
8 dưới dạng danh sách và toàn bộ ____95 dưới dạng một chuỗi được đưa vào bảng điều khiển

Tiếp theo là gì?

Chúng tôi đã lọc một số dữ liệu. Bạn có thể chỉ định nhiều bộ lọc đầu ra như bạn cần cho mỗi vũ đạo, vậy tại sao không thử thêm bộ lọc đầu ra thứ ba của riêng bạn vào ví dụ này?

Bạn muốn thử ví dụ này bằng một ngôn ngữ khác?

Khi bạn đã có mã của mình và chạy, bạn đã sẵn sàng để tiếp tục và làm nhiều hơn nữa. Từ công việc theo dõi các ứng dụng đang chạy của bạn, đến việc chuyển mã temo do bạn tạo ra đến môi trường phát triển mà bạn thích và chia sẻ nó với các đồng nghiệp, cộng tác viên và bạn bè - chúng tôi đã bảo đảm

Có cần hỗ trợ không?

Chúng tôi luôn sẵn lòng giúp đỡ. Chỉ cần gửi email cho chúng tôi tại, và chúng tôi sẽ trả lời câu hỏi của bạn

after

API lọc là gì?

API SAS REST. lọc. Boolean filter is application of a condition Boolean đối với bộ sưu tập tài nguyên để tập hợp bộ sưu tập cho ONY tài nguyên mà điều kiện là đúng. [Đối với những người quen thuộc với SQL, công việc lọc tương tự như truy vấn SQL với mệnh đề WHERE. ] việc áp dụng điều kiện Boolean đối với tập hợp tài nguyên để tập hợp con tập hợp thành chỉ những tài nguyên mà điều kiện là đúng . [Đối với những người quen thuộc với SQL, việc lọc tương tự như truy vấn SQL với mệnh đề WHERE. ]

Làm thế nào để bạn tạo bộ lọc trong JavaScript?

Please xem từng bước về cách thức hoạt động của filter[]. .

Tạo một bộ lọc mảng trống

Vòng lặp qua các phần tử của mảng

Được gọi là hàm FilterFunc với phần tử hiện tại là đối số

Nếu kết quả là đúng, hãy đưa phần tử vào mảng bộ lọc

Trả về mảng Filterarr sau khi đi qua tất cả các yếu tố

Bạn có thể lọc một đối tượng JavaScript không?

Đối tượng JavaScript Không có bộ lọc phương thức [], trước tiên bạn phải biến đối tượng thành một mảng để sử dụng phương thức bộ lọc của Array []. You can't use object. Hàm các phím [] để chuyển đổi các phím của đối tượng thành một mảng và tích lũy các phím được lọc thành một đối tượng mới bằng cách sử dụng hàm giảm [] như hiển thị bên dưới

Chủ Đề