Tìm kiếm trang web

javascript - Sử dụng nhiều mảng chuỗi trong Typescript


Tôi có một vấn đề rất đơn giản nhưng tôi không thể giải quyết được. Tôi muốn xé dữ liệu từ dịch vụ và ném nó vào mảng, nhưng tôi không thể làm nó như tôi muốn, cả khi sử dụng thuộc tính hay mảng.

Ví dụ văn bản: abc~sdfgsdg|def~dgdfgdf|cvx~fgdfgfdh|

Ví dụ mã:

let exampleText: string = 'abc~sdfgsdg|def~dgdfgdf|cvx~fgdfgfdh|'
let test: [string, string][];
let test2 = exampleTest.split('|');
test2.forEach(element => {
          let test3 = element.split('~'); 
          let t6 = test3[0]
          let t8 = test3[1]
          test.push(t6,t8)
        });

Lỗi: Đối số kiểu 'string' không thể gán cho tham số kiểu '[string, string]'.ts(2345)

Một cách khác:

let exampleText: string = 'abc~sdfgsdg|def~dgdfgdf|cvx~fgdfgfdh|'
let test: [Pro1:string,Pro2:string];
let test2 = exampleTest.split('|');
test2.forEach(element => {
          let test3 = element.split('~'); 
          let t6 = test3[0]
          let t8 = test3[1]
          test.push(t6,t8)
        });

Lỗi: TypeError: Không thể đọc các thuộc tính của undefined (đang đọc 'push')

Kết quả tôi muốn:

console.log(test[0][0]) //print 'abc'
console.log(test[0][1]) //print 'sdfgsdg'
console.log(test[1][0]) //print 'def'
console.log(test[1][1]) //print 'dgdfgdf'

Hoặc

console.log(test[0].Pro1) //print 'abc'
console.log(test[0].Pro2) //print 'sdfgsdg'
console.log(test[1].Pro1) //print 'def'
console.log(test[1].Pro2) //print 'dgdfgdf'

Câu trả lời #1

Trước hết, bạn cần khởi tạo mảng test. Nếu không, bạn sẽ không thể thêm phần tử vào nó.

let test: [string, string][] = [];

test chứa các bộ giá trị string có kích thước 2. Thêm một string vào sẽ không hoạt động. Bạn cần tạo một bộ giá trị bao gồm t6 và t8 và thêm nó vào.

test2.forEach((element) => {
  let test3 = element.split("~");
  let t6 = test3[0];
  let t8 = test3[1];
  test.push([t6, t8]);
});

Sân chơi