首页 > 解决方案 > .map 不是函数 - TypeScript 错误

问题描述

我正在尝试获取一系列城市名称。但即使我传递了一个数组,浏览器仍然说 .map 不是一个函数。这是我正在尝试的代码。

我试过做下面的代码,但仍然得到类似的错误。

    const results = [
{
  "Name":"Dale (e)",
  "City":"Dale (e)",
  "StateAbbreviation":"IN",
  "StateName":"Indiana",
  "StateCode":26,
  "ZipCode":"47523"},
{
  "Name":"Dallas",
  "City":"Dallas",
  "StateAbbreviation":"TX",
  "StateName":"Texas",
  "StateCode":68,
  "ZipCode":"75202",
  }
 ];

    result = results.map(function (obj) {
      return obj.Name;
    });
    console.log(result);

我正在尝试为城市名称的自动完成文本字段获取数组。

以下是我对结果的回应。

Array(5) [“Austin”、“Austin”、“Austin Cart Hq”、“Austin Metro Lakeline (e)”、“Austin S Park Meadow (e)”] App.js:76

未处理的拒绝 (TypeError):results.map 不是函数

但是浏览器错误地说 results.map 不是一个函数。

我的预期结果应该在一个数组中,以便我可以将数组设置为状态,它将显示文本框的自动完成文本字段。

标签: javascriptreactjsautocomplete

解决方案


试试这个 import { map } from 'rxjs/operators'; 在组件中,您必须先使用管道,然后才能使用地图......

import { from } from 'rxjs';
import { map } from 'rxjs/operators';

//emit ({name: 'Joe', age: 30}, {name: 'Frank', age: 20},{name: 'Ryan', age: 50})
const source = from(results);
//grab each persons name, could also use pluck for this scenario
const example = source.pipe(map(({ Name }) => Name));
//output: "Joe","Frank","Ryan"
const subscribe = example.subscribe(val => console.log(val));

我希望它有帮助


推荐阅读