Hướng dẫn can i slice object javascript? - tôi có thể cắt đối tượng javascript không?

Tôi đã cố gắng cắt một đối tượng bằng Array.prototype, nhưng nó trả về một mảng trống, có phương pháp nào để cắt các đối tượng bên cạnh việc truyền đối số hoặc chỉ là mã của tôi có điều gì đó không ổn? Cám ơn!!

var my_object = {
 0: 'zero',
 1: 'one',
 2: 'two',
 3: 'three',
 4: 'four'
};

var sliced = Array.prototype.slice.call(my_object, 4);
console.log(sliced);

Hướng dẫn can i slice object javascript? - tôi có thể cắt đối tượng javascript không?

Kevin Katzke

3.3533 huy hiệu vàng36 Huy hiệu bạc45 Huy hiệu đồng3 gold badges36 silver badges45 bronze badges

Hỏi ngày 5 tháng 9 năm 2016 lúc 19:23Sep 5, 2016 at 19:23

Hướng dẫn can i slice object javascript? - tôi có thể cắt đối tượng javascript không?

4

Không ai đề cập đến Object.entries (), đây có thể là cách linh hoạt nhất để làm điều đó. Phương pháp này sử dụng cùng thứ tự như

const obj = {'prop1': 'foo', 'prop2': 'bar', 'prop3': 'baz', 'prop4': {'prop': 'buzz'}};
4 khi liệt kê các thuộc tính, tức là thứ tự các thuộc tính ban đầu được nhập vào đối tượng. Bạn cũng nhận được Subarrays với cả tài sản và giá trị để bạn có thể sử dụng bất kỳ hoặc cả hai. Cuối cùng, bạn không phải lo lắng về các thuộc tính là số hoặc đặt một thuộc tính có độ dài thêm (như bạn làm khi sử dụng
const obj = {'prop1': 'foo', 'prop2': 'bar', 'prop3': 'baz', 'prop4': {'prop': 'buzz'}};
5). Đây là một ví dụ:
Here's an example:

const obj = {'prop1': 'foo', 'prop2': 'bar', 'prop3': 'baz', 'prop4': {'prop': 'buzz'}};

Bạn muốn cắt hai giá trị đầu tiên:

Object.entries(obj).slice(0,2).map(entry => entry[1]);
//["foo", "bar"]

Tất cả các chìa khóa?

Object.entries(obj).slice(0).map(entry => entry[0]);
//["prop1", "prop2", "prop3", "prop4"]

Cặp giá trị khóa cuối cùng?

Object.entries(obj).slice(-1)
//[ ['prop4', {'prop': 'buzz'}] ]

Đã trả lời ngày 19 tháng 7 năm 2017 lúc 16:02Jul 19, 2017 at 16:02

Tradtradtrad

7.4314 Huy hiệu vàng20 Huy hiệu bạc17 Huy hiệu đồng4 gold badges20 silver badges17 bronze badges

4

Bạn có thể

const obj = {'prop1': 'foo', 'prop2': 'bar', 'prop3': 'baz', 'prop4': {'prop': 'buzz'}};
6 kết quả của hàm
const obj = {'prop1': 'foo', 'prop2': 'bar', 'prop3': 'baz', 'prop4': {'prop': 'buzz'}};
7

const myObject = {
 0: 'zero',
 1: 'one',
 2: 'two',
 3: 'three',
 4: 'four'
};

const sliced = Object.keys(myObject).slice(0, 2).reduce((result, key) => {
                    result[key] = myObject[key];

                    return result;
                }, {});

console.log(sliced);

Đã trả lời ngày 15 tháng 10 năm 2018 lúc 17:38Oct 15, 2018 at 17:38

AmerzillaamerzillaAmerzilla

1.14811 huy hiệu bạc11 huy hiệu đồng11 silver badges11 bronze badges

1

Giải pháp hiện đại tốt nhất cho điều này là sự kết hợp của Object.fromentries và Object.entries.Object.fromEntries and Object.entries.

const foo = {
    one: 'ONE',
    two: 'TWO',
    three: 'THRE',
    four: 'FOUR',
}

const sliced = Object.fromEntries(
    Object.entries(foo).slice(1, 3)
)

console.log(sliced)

Đã trả lời ngày 5 tháng 3 năm 2020 lúc 15:13Mar 5, 2020 at 15:13

2

Tôi đã cố gắng cắt một đối tượng bằng cách sử dụng

const obj = {'prop1': 'foo', 'prop2': 'bar', 'prop3': 'baz', 'prop4': {'prop': 'buzz'}};
8, nhưng nó trả về một mảng trống

Đó là bởi vì nó không có tài sản

const obj = {'prop1': 'foo', 'prop2': 'bar', 'prop3': 'baz', 'prop4': {'prop': 'buzz'}};
9. Nó sẽ cố gắng truy cập nó, nhận
Object.entries(obj).slice(0,2).map(entry => entry[1]);
//["foo", "bar"]
0, chuyển nó đến một số, nhận
Object.entries(obj).slice(0,2).map(entry => entry[1]);
//["foo", "bar"]
1 và cắt lát nhiều nhất là nhiều thuộc tính ra khỏi đối tượng. Để đạt được kết quả mong muốn, do đó bạn phải gán nó một
Object.entries(obj).slice(0,2).map(entry => entry[1]);
//["foo", "bar"]
2 hoặc iterator thông qua đối tượng theo cách thủ công:

var my_object = {0: 'zero', 1: 'one', 2: 'two', 3: 'three', 4: 'four'};

my_object.length = 5;
console.log(Array.prototype.slice.call(my_object, 4));

var sliced = [];
for (var i=0; i<4; i++)
    sliced[i] = my_object[i];
console.log(sliced);

Hướng dẫn can i slice object javascript? - tôi có thể cắt đối tượng javascript không?

arhak

2.4381 Huy hiệu vàng24 Huy hiệu bạc37 Huy hiệu đồng1 gold badge24 silver badges37 bronze badges

Đã trả lời ngày 5 tháng 9 năm 2016 lúc 19:51Sep 5, 2016 at 19:51

BergibergiBergi

594K138 Huy hiệu vàng924 Huy hiệu bạc1311 Huy hiệu Đồng138 gold badges924 silver badges1311 bronze badges

2

var obj = {0: 'zero', 1: 'one', 2: 'two', 3: 'three', 4: 'four'};
var result = Object.keys(obj).slice(0,2).map(key => ({[key]:obj[key]}));

console.log(result);

[{'0': 'Zero'}, {'1': 'One'}]]

Đã trả lời ngày 23 tháng 1 năm 2018 lúc 20:30Jan 23, 2018 at 20:30

Hướng dẫn can i slice object javascript? - tôi có thể cắt đối tượng javascript không?

Rekinyzrekinyzrekinyz

6.3032 Huy hiệu vàng27 Huy hiệu bạc29 Huy hiệu đồng2 gold badges27 silver badges29 bronze badges

Hãy thử thêm thuộc tính 'độ dài' vào

Object.entries(obj).slice(0,2).map(entry => entry[1]);
//["foo", "bar"]
3 và sau đó mã của bạn sẽ hoạt động:

    var my_object = {
     0: 'zero',
     1: 'one',
     2: 'two',
     3: 'three',
     4: 'four',
     length: 5
    };
    
    var sliced = Array.prototype.slice.call(my_object, 4);
    console.log(sliced);

giorgio79

3,4419 huy hiệu vàng49 Huy hiệu bạc79 Huy hiệu đồng9 gold badges49 silver badges79 bronze badges

Đã trả lời ngày 5 tháng 9 năm 2016 lúc 19:50Sep 5, 2016 at 19:50

Hướng dẫn can i slice object javascript? - tôi có thể cắt đối tượng javascript không?

TED Hoppped HoppTed Hopp

229K48 Huy hiệu vàng389 Huy hiệu bạc514 Huy hiệu đồng48 gold badges389 silver badges514 bronze badges

Tôi nghĩ nó có thể giúp bạn:

const obj = {'prop1': 'foo', 'prop2': 'bar', 'prop3': 'baz', 'prop4': {'prop': 'buzz'}};
0

Đã trả lời ngày 5 tháng 9 năm 2016 lúc 19:40Sep 5, 2016 at 19:40

1

const obj = {'prop1': 'foo', 'prop2': 'bar', 'prop3': 'baz', 'prop4': {'prop': 'buzz'}};
1

Đã trả lời ngày 30 tháng 3 năm 2021 lúc 9:25Mar 30, 2021 at 9:25

Bạn không thể trừ khi nó có chức năng máy phát

Object.entries(obj).slice(0,2).map(entry => entry[1]);
//["foo", "bar"]
4 và thuộc tính
Object.entries(obj).slice(0,2).map(entry => entry[1]);
//["foo", "bar"]
2 tồn tại. Như là;

const obj = {'prop1': 'foo', 'prop2': 'bar', 'prop3': 'baz', 'prop4': {'prop': 'buzz'}};
2

Đã trả lời ngày 5 tháng 9 năm 2016 lúc 19:42Sep 5, 2016 at 19:42

Phân phối lạiRedu

23.6K6 Huy hiệu vàng52 Huy hiệu bạc69 Huy hiệu Đồng6 gold badges52 silver badges69 bronze badges

6

const obj = {'prop1': 'foo', 'prop2': 'bar', 'prop3': 'baz', 'prop4': {'prop': 'buzz'}};
3

Đã trả lời ngày 10 tháng 7 năm 2017 lúc 7:29Jul 10, 2017 at 7:29

Hướng dẫn can i slice object javascript? - tôi có thể cắt đối tượng javascript không?

Chúng ta có thể sử dụng lát cắt trên đối tượng không?

Định nghĩa và cách sử dụng.Hàm lát () trả về một đối tượng lát cắt.Một đối tượng lát được sử dụng để chỉ định cách cắt một chuỗi.Bạn có thể chỉ định nơi bắt đầu cắt lát và nơi kết thúc.

Slice có phá hủy JavaScript?

Slice () là một phương thức của đối tượng mảng và đối tượng chuỗi.Nó không phá hủy vì nó trả về một bản sao mới và nó không thay đổi nội dung của mảng đầu vào.Slice () thường được sử dụng trong lập trình chức năng để tránh tác dụng phụ.non-destructive since it return a new copy and it doesn't change the content of input array. slice() is normally used in function programming to avoid side-effect.

Làm thế nào để bạn viết lát cắt trong javascript?

Cú pháp.Phương thức Slice () được biểu thị bằng cú pháp sau: Array.Slice (Bắt đầu, Kết thúc)array. slice(start,end)

Làm thế nào để bạn cắt một mảng các đối tượng trong TypeScript?

Slice () là một hàm TypeScript sẵn có được sử dụng để trích xuất một phần của một mảng và trả về một mảng mới.Cú pháp: mảng.slice (bắt đầu [, kết thúc]);array. slice( begin [,end] );