当前位置: 首页 > 知识库问答 >
问题:

Angular 2声明一个对象数组

松建本
2023-03-14

我有以下的表达方式:

public mySentences:Array<string> = [
    {id: 1, text: 'Sentence 1'},
    {id: 2, text: 'Sentence 2'},
    {id: 3, text: 'Sentence 3'},
    {id: 4, text: 'Sentenc4 '},
];

这不起作用,因为我的数组不是<code>string<code>类型,而是包含一个对象列表。如何删除数组以包含对象列表?

*没有一个新的组件,它声明一个类的句子,这似乎是一种浪费

共有3个答案

刁星渊
2023-03-14

如果要存储来自外部API或DB的数据,另一种方法特别有用:

>

  • 创建一个表示数据模型的类

    export class Data{
        private id:number;
        private text: string;
    
        constructor(id,text) {
            this.id = id;
            this.text = text;
        }
    

    在组件类中,创建一个< code>Data类型的空数组,每当从API或您使用的任何数据源获得响应时,就填充这个数组

    export class AppComponent {
        private search_key: string;
        private dataList: Data[] = [];
    
        getWikiData() {
           this.httpService.getDataFromAPI()
            .subscribe(data => {
              this.parseData(data);
            });
         }
    
        parseData(jsonData: string) {
        //considering you get your data in json arrays
        for (let i = 0; i < jsonData[1].length; i++) {
             const data = new WikiData(jsonData[1][i], jsonData[2][i]);
             this.wikiData.push(data);
        }
      }
    }
    

  • 朱欣荣
    2023-03-14
    public mySentences:Array<Object> = [
        {id: 1, text: 'Sentence 1'},
        {id: 2, text: 'Sentence 2'},
        {id: 3, text: 'Sentence 3'},
        {id: 4, text: 'Sentenc4 '},
    ];
    

    或者更确切地说,

    export interface type{
        id:number;
        text:string;
    }
    
    public mySentences:type[] = [
        {id: 1, text: 'Sentence 1'},
        {id: 2, text: 'Sentence 2'},
        {id: 3, text: 'Sentence 3'},
        {id: 4, text: 'Sentenc4 '},
    ];
    
    蔡修远
    2023-03-14

    我假设你使用的是类型脚本。

    为了更加谨慎,您可以将< code>type定义为需要匹配特定接口的对象数组:

    type MyArrayType = Array<{id: number, text: string}>;
    
    const arr: MyArrayType = [
        {id: 1, text: 'Sentence 1'},
        {id: 2, text: 'Sentence 2'},
        {id: 3, text: 'Sentence 3'},
        {id: 4, text: 'Sentenc4 '},
    ];
    

    或短语法,而不定义自定义类型:

    const arr: Array<{id: number, text: string}> = [...];
    
     类似资料:
    • 问题内容: 我努力了: 首先,声明和初始化可以正常工作,但是第二,第三和第四不起作用。如何声明和初始化浮点数的const数组? 问题答案: 数组不是天生不变的。您无法使其保持恒定。 您可以获得的最接近的是: 请注意而不是:它可确保获得(固定大小)数组而不是切片。因此值不是固定的,但大小是固定的。

    • 问题内容: 如何将类属性声明为对象? 我试过了: 但这没有用。另外,为什么要那样做呢? 只实例化该对象并使用其成员不是更好吗? 问题答案: 从有关类属性的PHP手册(重点是我的): 类成员变量称为“属性”。您可能还会看到使用其他术语(例如“属性”或“字段”)来引用它们,但是出于参考目的,我们将使用“属性”。它们是使用关键字public,protected或private之一定义的,后跟普通变量声明

    • 我查看了许多示例代码和文档,无论是隐式构造函数还是显式构造函数,您都可以通过使用类名前面的来声明新类,但随后它们会声明一些值。因此,我认为在某个外部作用域声明它之前,实例是不存在的。

    • Kotlin 用对象表达式和对象声明来实现创建一个对某个类做了轻微改动的类的对象,且不需要去声明一个新的子类。 对象表达式 通过对象表达式实现一个匿名内部类的对象用于方法的参数中: window.addMouseListener(object : MouseAdapter() { override fun mouseClicked(e: MouseEvent) { //

    • 本文向大家介绍javaScript的函数对象的声明详解,包括了javaScript的函数对象的声明详解的使用技巧和注意事项,需要的朋友参考一下 写作缘由:     平时再用js写函数的时候,一般都是以惯例 function fn () {} 的方式来声明一个函数,在阅读一些优秀插件的时候又不免见到     var fn = function () {} 这种函数的创建,究竟他们用起来有什么区别呢,

    • 主要内容:对象表达式,对象声明,伴生对象,对象表达式和对象声明之间的语义差异Kotlin 用对象表达式和对象声明来实现创建一个对某个类做了轻微改动的类的对象,且不需要去声明一个新的子类。 对象表达式 通过对象表达式实现一个匿名内部类的对象用于方法的参数中: 对象可以继承于某个基类,或者实现其他接口: 如果超类型有一个构造函数,则必须传递参数给它。多个超类型和接口可以用逗号分隔。 通过对象表达式可以越过类的定义直接得到一个对象: 请注意,匿名对象可以用作只在本地和私有作用域