Chuyển đổi mảng nhiều chiều thành mảng đơn javascript

Chúng ta có thể định hình lại mảng 1D 8 phần tử thành 4 phần tử trong mảng 2D 2 hàng nhưng chúng ta không thể định hình lại nó thành mảng 2D 3 phần tử 3 hàng vì điều đó sẽ yêu cầu 3x3 = 9 phần tử

Thí dụ

Hãy thử chuyển đổi mảng 1D có 8 phần tử thành mảng 2D có 3 phần tử trong mỗi chiều [sẽ phát sinh lỗi]

nhập numpy dưới dạng np

mảng = np. mảng[[1, 2, 3, 4, 5, 6, 7, 8]]

mớiarr = mảng. định hình lại[3, 3]

in[newarr]

Tự mình thử »

Trả về Sao chép hoặc Xem?

Thí dụ

Kiểm tra xem mảng được trả về là bản sao hay chế độ xem

nhập numpy dưới dạng np

mảng = np. mảng[[1, 2, 3, 4, 5, 6, 7, 8]]

in [mảng. định hình lại[2, 4]. cơ sở]

Tự mình thử »

Ví dụ trên trả về mảng ban đầu, vì vậy nó là một dạng xem

Thứ nguyên không xác định

Bạn được phép có một thứ nguyên "không xác định"

Có nghĩa là bạn không phải chỉ định một số chính xác cho một trong các kích thước trong phương thức định hình lại

Vượt qua giá trị

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
7 và NumPy sẽ tính toán số này cho bạn

Thí dụ

Chuyển mảng 1D có 8 phần tử thành mảng 3D có 2 phần tử

nhập numpy dưới dạng np

mảng = np. mảng[[1, 2, 3, 4, 5, 6, 7, 8]]

mớiarr = mảng. định hình lại [2, 2, -1]

in[newarr]

Tự mình thử »

Ghi chú. Chúng tôi không thể vượt qua

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
7 đến nhiều hơn một chiều

Làm phẳng các mảng

Làm phẳng mảng có nghĩa là chuyển mảng nhiều chiều thành mảng 1 chiều

Chúng ta có thể sử dụng

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
9 để làm điều này

Thí dụ

Chuyển đổi mảng thành mảng 1D

nhập numpy dưới dạng np

mảng = np. mảng[[[1, 2, 3], [4, 5, 6]]]

mớiarr = mảng. định hình lại [-1]

in[newarr]

Tự mình thử »

Ghi chú. Có rất nhiều hàm để thay đổi hình dạng của mảng trong numpy

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
0,
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
1 và cũng để sắp xếp lại các phần tử
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
2,
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
3,
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
4,
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
5, v.v. Chúng thuộc phần Trung cấp đến Nâng cao của numpy

Nếu bạn có một mảng đa chiều và chứa dữ liệu trùng lặp. bạn có thể có một phiên bản phẳng, độc đáo, sử dụng các khả năng JavaScript ES2019 hiện đại

Ngôn ngữ mã JavaScript Sao chép vào khay nhớ tạm

const allAnimals = [
	["Cat", "Dog", "Quokka", "Possum"], 
	["Quokka"], 
	["Quokka", "Elephant", "Giraffe"], 
	"Cat", "Possum"
];

const filteredAnimals = [...new Set[allAnimals.flat[]]];

Phương thức nguyên mẫu

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
6 lấy từng mảng lồng nhau và trả về một mảng phẳng, một mức, chứa tất cả dữ liệu

Sau đó, những gì chúng tôi làm là sử dụng một Set khởi tạo mới để loại bỏ bất kỳ sự trùng lặp nào. Cuối cùng, chúng tôi sử dụng cú pháp trải rộng để chuyển đổi lại thành một mảng

Trong bài viết này chúng ta sẽ cùng nhau tìm hiểu cách chuyển mảng hai chiều thành đối tượng. Mảng hai chiều có thể có bao nhiêu hàng và hai cột

Thí dụ

Input: [
         ["John", 12],
         ["Jack", 13],
         ["Matt", 14],
         ["Maxx", 15]
       ]

Output: {
          "John": 12,
          "Jack": 13,
          "Matt": 14,
          "Maxx": 15
        }

Các cách tiếp cận dưới đây có thể được thực hiện để giải quyết vấn đề

Cách tiếp cận 1. Trong cách tiếp cận này, chúng tôi tạo một đối tượng trống và sử dụng Array. phương thức forEach[] để lặp qua mảng. Trên mỗi lần lặp, chúng tôi chèn mục đầu tiên của mảng con vào đối tượng làm khóa và mục thứ hai làm giá trị. Sau đó, nó trả về đối tượng sau khi lặp lại

 

Thí dụ

Javascript




{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
7
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
8

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
9

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
0
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
1

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
0
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
0

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
9

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
0
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
3

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
9

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
5
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
6

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
5
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
8

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
5
{
  Eren: 'Yeager',
  Mikasa: 'Ackermann',
  Armin: 'Arlelt',
  Levi: 'Ackermann'
}
0

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
9

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
5
{
  Eren: 'Yeager',
  Mikasa: 'Ackermann',
  Armin: 'Arlelt',
  Levi: 'Ackermann'
}
3

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
5
{
  Eren: 'Yeager',
  Mikasa: 'Ackermann',
  Armin: 'Arlelt',
  Levi: 'Ackermann'
}
5

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
5
{
  Eren: 'Yeager',
  Mikasa: 'Ackermann',
  Armin: 'Arlelt',
  Levi: 'Ackermann'
}
7

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
0
{
  Eren: 'Yeager',
  Mikasa: 'Ackermann',
  Armin: 'Arlelt',
  Levi: 'Ackermann'
}
9

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
9

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
0____172

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
0
Input: [
         ["John", 12],
         ["Jack", 13],
         ["Matt", 14],
         ["Maxx", 15]
       ]

Output: {
          "John": 12,
          "Jack": 13,
          "Matt": 14,
          "Maxx": 15
        }
74
Input: [
         ["John", 12],
         ["Jack", 13],
         ["Matt", 14],
         ["Maxx", 15]
       ]

Output: {
          "John": 12,
          "Jack": 13,
          "Matt": 14,
          "Maxx": 15
        }
75

Input: [
         ["John", 12],
         ["Jack", 13],
         ["Matt", 14],
         ["Maxx", 15]
       ]

Output: {
          "John": 12,
          "Jack": 13,
          "Matt": 14,
          "Maxx": 15
        }
76

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
9

Input: [
         ["John", 12],
         ["Jack", 13],
         ["Matt", 14],
         ["Maxx", 15]
       ]

Output: {
          "John": 12,
          "Jack": 13,
          "Matt": 14,
          "Maxx": 15
        }
78

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
0
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
70

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
5
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
72
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
73
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
74

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
5
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
72
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
77
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
78

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
5
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
72
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
81
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
82

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
5
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
72____685
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
86

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
0
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
88

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
89

đầu ra

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}

Cách tiếp cận 2. Trong cách tiếp cận này, chúng ta sẽ sử dụng Array. reduce[] và khởi tạo bộ tích lũy với một đối tượng trống. Trên mỗi lần lặp lại, chúng tôi gán giá trị hiện tại làm giá trị của khóa của bộ tích lũy và trả về bộ tích lũy. Sau đó, nó trả về đối tượng sau khi lặp lại

Thí dụ

Javascript




{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
7
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
8

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
0
Input: [
         ["John", 12],
         ["Jack", 13],
         ["Matt", 14],
         ["Maxx", 15]
       ]

Output: {
          "John": 12,
          "Jack": 13,
          "Matt": 14,
          "Maxx": 15
        }
74
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
94

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
5
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
96

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
97

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
98
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
6

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
98
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
01

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
98
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
03

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
9

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
98
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
06

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
98
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
08

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
98
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
10

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
9

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
98
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
13

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
98
Input: [
         ["John", 12],
         ["Jack", 13],
         ["Matt", 14],
         ["Maxx", 15]
       ]

Output: {
          "John": 12,
          "Jack": 13,
          "Matt": 14,
          "Maxx": 15
        }
74
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
16

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
5
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
18

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
9

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
5
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
01

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
5
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
03

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
0
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
89

Input: [
         ["John", 12],
         ["Jack", 13],
         ["Matt", 14],
         ["Maxx", 15]
       ]

Output: {
          "John": 12,
          "Jack": 13,
          "Matt": 14,
          "Maxx": 15
        }
76

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
9

Input: [
         ["John", 12],
         ["Jack", 13],
         ["Matt", 14],
         ["Maxx", 15]
       ]

Output: {
          "John": 12,
          "Jack": 13,
          "Matt": 14,
          "Maxx": 15
        }
78

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
0
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
70

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
5
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
72
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
03
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
04
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
05
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
06

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
5
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
72
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
09
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
04
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
11
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
06

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
5
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
72
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
15____204
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
17
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
06

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
5
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
72
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
21
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
04
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
11
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
06

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
0
{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
88

{
  Jack: 13,
  John: 12,
  Matt: 14,
  Maxx: 15
}
89

đầu ra

{
  Eren: 'Yeager',
  Mikasa: 'Ackermann',
  Armin: 'Arlelt',
  Levi: 'Ackermann'
}

Cách tiếp cận 3. Theo cách tiếp cận này, trước tiên chúng ta làm phẳng mảng bằng cách sử dụng Array. flat[] để chúng ta có được một mảng một chiều. Sau đó, chúng ta có thể tạo một đối tượng trống và lặp lại mảng để gán các giá trị có vị trí đồng đều làm khóa của đối tượng và các giá trị có vị trí lẻ làm giá trị

Làm cách nào để chuyển đổi mảng nhiều chiều thành mảng đơn trong js?

Làm phẳng mảng nhiều chiều trong JavaScript .
[1, 2, 3, 4, 5, 6, 7, 8, 9] Cách giải 1. Sử dụng concat[] và áp dụng[]
var myNewArray = []. concat. .
var myNewArray = myArray. giảm [hàm [trước, hiện tại] { trả về trước. .
var myNewArray3 = []; . .
var myNewArray4 = []

Làm cách nào để làm phẳng JavaScript mảng đa chiều?

a. Sử dụng concat[] và apply[] let flatArray = []. concat. .
b. Sử dụng toán tử trải rộng. hãy để phẳngArray = []. concat[. mảng]; . [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ].
c. Sử dụng phương pháp rút gọn. hãy để phẳngArray = mảng

Chúng ta có thể chuyển đổi mảng 2D thành mảng 1D không?

Với làm phẳng . The flatten function in numpy is a direct way to convert the 2d array in to a 1D array.

Làm cách nào để chuyển đổi mảng 2D thành 1D?

Chuyển đổi mảng 2D Numpy thành mảng 1D nhưng có cột thông minh .
mảng = np. mảng [[[0, 1, 2],
[3, 4, 5],
[6, 7, 8]]]
# Đọc mảng 2D theo từng cột và tạo mảng 1D từ đó
phẳng_arr = np. định hình lại [mảng, -1, thứ tự = 'F']
in ['Mảng Numpy 1D. ']
in [phẳng_arr]

Chủ Đề