Hướng dẫn remove multiple elements from array javascript - xóa nhiều phần tử khỏi javascript mảng

Luôn có vòng lặp

while(IndexesToBeRemoved.length) {
    elements.splice(IndexesToBeRemoved.pop(), 1);
}
2 cũ đơn giản:

var valuesArr = ["v1","v2","v3","v4","v5"],
    removeValFromIndex = [0,2,4];    

for (var i = removeValFromIndex.length -1; i >= 0; i--)
   valuesArr.splice(removeValFromIndex[i],1);

Đi qua

while(IndexesToBeRemoved.length) {
    elements.splice(IndexesToBeRemoved.pop(), 1);
}
3 theo thứ tự ngược lại và bạn có thể ____34 mà không làm rối các chỉ mục của các mục chưa được xóa.

Lưu ý ở trên, tôi đã sử dụng cú pháp theo nghĩa chính của mảng với dấu ngoặc vuông để khai báo hai mảng. Đây là cú pháp được khuyến nghị vì việc sử dụng

while(IndexesToBeRemoved.length) {
    elements.splice(IndexesToBeRemoved.pop(), 1);
}
5 có khả năng gây nhầm lẫn cho rằng nó phản ứng khác nhau tùy thuộc vào số lượng tham số bạn truyền vào.

Chỉnh sửa: Chỉ cần thấy nhận xét của bạn về một câu trả lời khác về mảng các chỉ mục không nhất thiết phải theo bất kỳ thứ tự cụ thể nào. Nếu đó là trường hợp chỉ sắp xếp nó theo thứ tự giảm dần trước khi bạn bắt đầu:: Just saw your comment on another answer about the array of indexes not necessarily being in any particular order. If that's the case just sort it into descending order before you start:

removeValFromIndex.sort(function(a,b){ return b - a; });

Và làm theo điều đó với bất kỳ phương pháp vòng lặp /

while(IndexesToBeRemoved.length) {
    elements.splice(IndexesToBeRemoved.pop(), 1);
}
6 / v.v.

Đã trả lời ngày 24 tháng 2 năm 2012 lúc 4:04Feb 24, 2012 at 4:04

Hướng dẫn remove multiple elements from array javascript - xóa nhiều phần tử khỏi javascript mảng

nnnnnnnnnnnnnnnnnn

Badges vàng 145K2929 gold badges193 silver badges234 bronze badges

13

Tôi đề nghị bạn sử dụng Array.prototype.filter

var valuesArr = ["v1","v2","v3","v4","v5"];
var removeValFrom = [0, 2, 4];
valuesArr = valuesArr.filter(function(value, index) {
     return removeValFrom.indexOf(index) == -1;
})

Đã trả lời ngày 23 tháng 3 năm 2017 lúc 2:16Mar 23, 2017 at 2:16

Hướng dẫn remove multiple elements from array javascript - xóa nhiều phần tử khỏi javascript mảng

3

Đây là một thứ mà tôi sử dụng khi không đi với lodash/indofcore:

while(IndexesToBeRemoved.length) {
    elements.splice(IndexesToBeRemoved.pop(), 1);
}

Hướng dẫn remove multiple elements from array javascript - xóa nhiều phần tử khỏi javascript mảng

Renato Gama

16.1K12 Huy hiệu vàng57 Huy hiệu bạc88 Huy hiệu đồng12 gold badges57 silver badges88 bronze badges

Đã trả lời ngày 31 tháng 1 năm 2016 lúc 17:35Jan 31, 2016 at 17:35

Hướng dẫn remove multiple elements from array javascript - xóa nhiều phần tử khỏi javascript mảng

Dan Ochianadan OchianaDan Ochiana

3.1821 Huy hiệu vàng28 Huy hiệu bạc27 Huy hiệu đồng1 gold badge28 silver badges27 bronze badges

6

Không phải

while(IndexesToBeRemoved.length) {
    elements.splice(IndexesToBeRemoved.pop(), 1);
}
7 nhưng có thể được thực hiện bằng cách sử dụng các hàm
while(IndexesToBeRemoved.length) {
    elements.splice(IndexesToBeRemoved.pop(), 1);
}
8 và
while(IndexesToBeRemoved.length) {
    elements.splice(IndexesToBeRemoved.pop(), 1);
}
9 của
var arr = $.grep(valuesArr, function(n, i) {
    return $.inArray(i, removeValFromIndex) ==-1;
});

alert(arr);//arr contains V2, V4
0.

var arr = $.grep(valuesArr, function(n, i) {
    return $.inArray(i, removeValFromIndex) ==-1;
});

alert(arr);//arr contains V2, V4

Kiểm tra fiddle này.

Đã trả lời ngày 24 tháng 2 năm 2012 lúc 4:05Feb 24, 2012 at 4:05

ThevillageidiotthevillageidiotTheVillageIdiot

39.3K20 Huy hiệu vàng132 Huy hiệu bạc186 Huy hiệu Đồng20 gold badges132 silver badges186 bronze badges

4

Một giải pháp đơn giản và hiệu quả (độ phức tạp tuyến tính) bằng cách sử dụng bộ lọc và đặt:

const valuesArr = ['v1', 'v2', 'v3', 'v4', 'v5'];   
const removeValFromIndex = [0, 2, 4];

const indexSet = new Set(removeValFromIndex);

const arrayWithValuesRemoved = valuesArr.filter((value, i) => !indexSet.has(i));

console.log(arrayWithValuesRemoved);

Lợi thế lớn của việc triển khai đó là hoạt động tra cứu đã thiết lập (chức năng

var arr = $.grep(valuesArr, function(n, i) {
    return $.inArray(i, removeValFromIndex) ==-1;
});

alert(arr);//arr contains V2, V4
1) mất thời gian liên tục, ví dụ nhanh hơn câu trả lời của Nevace.

Đã trả lời ngày 3 tháng 1 năm 2019 lúc 12:35Jan 3, 2019 at 12:35

Hướng dẫn remove multiple elements from array javascript - xóa nhiều phần tử khỏi javascript mảng

1

Điều này hoạt động tốt cho tôi và làm việc khi xóa khỏi một mảng các đối tượng:

var array = [ 
    { id: 1, name: 'bob', faveColor: 'blue' }, 
    { id: 2, name: 'jane', faveColor: 'red' }, 
    { id: 3, name: 'sam', faveColor: 'blue' }
];

// remove people that like blue

array.filter(x => x.faveColor === 'blue').forEach(x => array.splice(array.indexOf(x), 1));

Có thể có một cách ngắn hơn hiệu quả hơn để viết điều này nhưng điều này không hoạt động.

Đã trả lời ngày 31 tháng 1 năm 2019 lúc 9:18Jan 31, 2019 at 9:18

Hướng dẫn remove multiple elements from array javascript - xóa nhiều phần tử khỏi javascript mảng

StuartMcStuartMCStuartMc

6467 Huy hiệu bạc12 Huy hiệu Đồng7 silver badges12 bronze badges

Cảm giác cần thiết để đăng một câu trả lời với thời gian

var arr = $.grep(valuesArr, function(n, i) {
    return $.inArray(i, removeValFromIndex) ==-1;
});

alert(arr);//arr contains V2, V4
2 :). Vấn đề với giải pháp mối nối là do việc triển khai mảng cơ bản là một mảng theo nghĩa đen, mỗi cuộc gọi
var arr = $.grep(valuesArr, function(n, i) {
    return $.inArray(i, removeValFromIndex) ==-1;
});

alert(arr);//arr contains V2, V4
3 sẽ mất thời gian
var arr = $.grep(valuesArr, function(n, i) {
    return $.inArray(i, removeValFromIndex) ==-1;
});

alert(arr);//arr contains V2, V4
2. Điều này được phát âm nhất khi chúng tôi thiết lập một ví dụ để khai thác hành vi này:

var n = 100
var xs = []
for(var i=0; i=0;i--)
  is.push(i)

Điều này loại bỏ các yếu tố bắt đầu từ giữa đến đầu, do đó, mỗi lần xóa buộc công cụ JS phải sao chép các phần tử

var arr = $.grep(valuesArr, function(n, i) {
    return $.inArray(i, removeValFromIndex) ==-1;
});

alert(arr);//arr contains V2, V4
5, chúng tôi có
var arr = $.grep(valuesArr, function(n, i) {
    return $.inArray(i, removeValFromIndex) ==-1;
});

alert(arr);//arr contains V2, V4
6 hoạt động sao chép tổng cộng là bậc hai.

Giải pháp mối nối (giả sử

var arr = $.grep(valuesArr, function(n, i) {
    return $.inArray(i, removeValFromIndex) ==-1;
});

alert(arr);//arr contains V2, V4
7 đã được sắp xếp theo thứ tự giảm để loại bỏ chi phí) như thế này:

for(var i=0; i

Tuy nhiên, không khó để thực hiện giải pháp thời gian tuyến tính, bằng cách xây dựng lại mảng từ đầu, sử dụng mặt nạ để xem liệu chúng tôi có sao chép các yếu tố hay không (sắp xếp sẽ đẩy nó lên

var arr = $.grep(valuesArr, function(n, i) {
    return $.inArray(i, removeValFromIndex) ==-1;
});

alert(arr);//arr contains V2, V4
8). Sau đây là một triển khai như vậy (không phải là
var arr = $.grep(valuesArr, function(n, i) {
    return $.inArray(i, removeValFromIndex) ==-1;
});

alert(arr);//arr contains V2, V4
9 là Boolean đảo ngược tốc độ):

var mask = new Array(xs.length)
for(var i=is.length - 1; i>=0; i--)
  mask[is[i]] = true
var offset = 0
for(var i=0; i

Tôi đã chạy điều này trên jsperf.com và thậm chí

const valuesArr = ['v1', 'v2', 'v3', 'v4', 'v5'];   
const removeValFromIndex = [0, 2, 4];

const indexSet = new Set(removeValFromIndex);

const arrayWithValuesRemoved = valuesArr.filter((value, i) => !indexSet.has(i));

console.log(arrayWithValuesRemoved);
0, phương pháp splice chậm hơn 90%. Đối với
const valuesArr = ['v1', 'v2', 'v3', 'v4', 'v5'];   
const removeValFromIndex = [0, 2, 4];

const indexSet = new Set(removeValFromIndex);

const arrayWithValuesRemoved = valuesArr.filter((value, i) => !indexSet.has(i));

console.log(arrayWithValuesRemoved);
1 lớn hơn, sự khác biệt này sẽ lớn hơn nhiều.

Đã trả lời ngày 26 tháng 11 năm 2015 lúc 19:22Nov 26, 2015 at 19:22

Simonzacksimonzacksimonzack

18.6K13 Huy hiệu vàng66 Huy hiệu bạc108 Huy hiệu đồng13 gold badges66 silver badges108 bronze badges

removeValFromIndex.sort(function(a,b){ return b - a; });
0

Tài liệu tham khảo MDN ở đây

Đã trả lời ngày 24 tháng 2 năm 2012 lúc 3:43Feb 24, 2012 at 3:43

Hướng dẫn remove multiple elements from array javascript - xóa nhiều phần tử khỏi javascript mảng

hrishikeshp19hrishikeshp19hrishikeshp19

8.46824 Huy hiệu vàng76 Huy hiệu bạc139 Huy hiệu Đồng24 gold badges76 silver badges139 bronze badges

3

Trong JS thuần túy, bạn có thể lặp qua mảng ngược, vì vậy

const valuesArr = ['v1', 'v2', 'v3', 'v4', 'v5'];   
const removeValFromIndex = [0, 2, 4];

const indexSet = new Set(removeValFromIndex);

const arrayWithValuesRemoved = valuesArr.filter((value, i) => !indexSet.has(i));

console.log(arrayWithValuesRemoved);
2 sẽ không làm rối các chỉ số của các phần tử tiếp theo trong vòng lặp:

removeValFromIndex.sort(function(a,b){ return b - a; });
1

Đã trả lời ngày 18 tháng 11 năm 2015 lúc 0:00Nov 18, 2015 at 0:00

Hướng dẫn remove multiple elements from array javascript - xóa nhiều phần tử khỏi javascript mảng

WatchduckwatchduckWatchduck

Huy hiệu vàng 93011 gold badge8 silver badges27 bronze badges

1

Tôi thấy đây là giải pháp thanh lịch nhất:

removeValFromIndex.sort(function(a,b){ return b - a; });
2

output:

removeValFromIndex.sort(function(a,b){ return b - a; });
3

hoặc thậm chí ngắn hơn:

removeValFromIndex.sort(function(a,b){ return b - a; });
4

Đã trả lời ngày 10 tháng 5 lúc 8:38May 10 at 8:38

Hướng dẫn remove multiple elements from array javascript - xóa nhiều phần tử khỏi javascript mảng

1

Một giải pháp đơn giản sử dụng ES5. Điều này có vẻ phù hợp hơn cho hầu hết các ứng dụng hiện nay, vì nhiều người không còn muốn dựa vào jQuery, v.v.

Khi các chỉ mục được xóa được sắp xếp theo thứ tự tăng dần:

removeValFromIndex.sort(function(a,b){ return b - a; });
5

Khi các chỉ mục được xóa không được sắp xếp:

removeValFromIndex.sort(function(a,b){ return b - a; });
6

Đã trả lời ngày 7 tháng 12 năm 2016 lúc 13:13Dec 7, 2016 at 13:13

Es6 nhanh một lớp lót:

removeValFromIndex.sort(function(a,b){ return b - a; });
7

Đã trả lời ngày 19 tháng 6 năm 2018 lúc 13:23Jun 19, 2018 at 13:23

Nevacenevacenevace

6696 Huy hiệu bạc6 Huy hiệu Đồng6 silver badges6 bronze badges

1

Nếu bạn đang sử dụng UnderCore.js, bạn có thể sử dụng

const valuesArr = ['v1', 'v2', 'v3', 'v4', 'v5'];   
const removeValFromIndex = [0, 2, 4];

const indexSet = new Set(removeValFromIndex);

const arrayWithValuesRemoved = valuesArr.filter((value, i) => !indexSet.has(i));

console.log(arrayWithValuesRemoved);
3 để giải quyết vấn đề của mình.

removeValFromIndex.sort(function(a,b){ return b - a; });
8

Ngoài ra, nếu bạn đang cố gắng xóa các mục bằng danh sách các mục thay vì chỉ mục, bạn chỉ cần sử dụng

const valuesArr = ['v1', 'v2', 'v3', 'v4', 'v5'];   
const removeValFromIndex = [0, 2, 4];

const indexSet = new Set(removeValFromIndex);

const arrayWithValuesRemoved = valuesArr.filter((value, i) => !indexSet.has(i));

console.log(arrayWithValuesRemoved);
4, như vậy:

removeValFromIndex.sort(function(a,b){ return b - a; });
9

Bây giờ

const valuesArr = ['v1', 'v2', 'v3', 'v4', 'v5'];   
const removeValFromIndex = [0, 2, 4];

const indexSet = new Set(removeValFromIndex);

const arrayWithValuesRemoved = valuesArr.filter((value, i) => !indexSet.has(i));

console.log(arrayWithValuesRemoved);
5 nên là
const valuesArr = ['v1', 'v2', 'v3', 'v4', 'v5'];   
const removeValFromIndex = [0, 2, 4];

const indexSet = new Set(removeValFromIndex);

const arrayWithValuesRemoved = valuesArr.filter((value, i) => !indexSet.has(i));

console.log(arrayWithValuesRemoved);
6

Hướng dẫn remove multiple elements from array javascript - xóa nhiều phần tử khỏi javascript mảng

lập trình

1.3561 Huy hiệu vàng17 Huy hiệu bạc31 Huy hiệu đồng1 gold badge17 silver badges31 bronze badges

Đã trả lời ngày 5 tháng 5 năm 2014 lúc 6:41May 5, 2014 at 6:41

Hướng dẫn remove multiple elements from array javascript - xóa nhiều phần tử khỏi javascript mảng

Johnny Zhaojohnny ZhaoJohnny Zhao

2.6881 Huy hiệu vàng27 Huy hiệu bạc26 Huy hiệu đồng1 gold badge27 silver badges26 bronze badges

1

Bạn có thể sửa mã của mình bằng cách thay thế

while(IndexesToBeRemoved.length) {
    elements.splice(IndexesToBeRemoved.pop(), 1);
}
3 bằng
const valuesArr = ['v1', 'v2', 'v3', 'v4', 'v5'];   
const removeValFromIndex = [0, 2, 4];

const indexSet = new Set(removeValFromIndex);

const arrayWithValuesRemoved = valuesArr.filter((value, i) => !indexSet.has(i));

console.log(arrayWithValuesRemoved);
8. Nếu mảng đó không được đảm bảo sử dụng đơn hàng tăng dần, thay vào đó bạn có thể sử dụng
const valuesArr = ['v1', 'v2', 'v3', 'v4', 'v5'];   
const removeValFromIndex = [0, 2, 4];

const indexSet = new Set(removeValFromIndex);

const arrayWithValuesRemoved = valuesArr.filter((value, i) => !indexSet.has(i));

console.log(arrayWithValuesRemoved);
9.

Đã trả lời ngày 24 tháng 2 năm 2012 lúc 3:40Feb 24, 2012 at 3:40

Minopretminopretminopret

4.67620 Huy hiệu bạc33 Huy hiệu Đồng20 silver badges33 bronze badges

2

Đây là một khả năng:

var valuesArr = ["v1","v2","v3","v4","v5"];
var removeValFrom = [0, 2, 4];
valuesArr = valuesArr.filter(function(value, index) {
     return removeValFrom.indexOf(index) == -1;
})
0

Ví dụ về jsfiddle

MDN trên mảng.prototype.reduceright

Đã trả lời ngày 14 tháng 6 năm 2014 lúc 14:50Jun 14, 2014 at 14:50

Olli Kolli kOlli K

1.6201 Huy hiệu vàng16 Huy hiệu bạc15 Huy hiệu đồng1 gold badge16 silver badges15 bronze badges

Bộ lọc + Indexof (IE9 +):

var valuesArr = ["v1","v2","v3","v4","v5"];
var removeValFrom = [0, 2, 4];
valuesArr = valuesArr.filter(function(value, index) {
     return removeValFrom.indexOf(index) == -1;
})
1

Hoặc với bộ lọc ES6 + Tìm (cạnh +):

var valuesArr = ["v1","v2","v3","v4","v5"];
var removeValFrom = [0, 2, 4];
valuesArr = valuesArr.filter(function(value, index) {
     return removeValFrom.indexOf(index) == -1;
})
2

Đã trả lời ngày 18 tháng 8 năm 2016 lúc 16:01Aug 18, 2016 at 16:01

Daviestardaviestardaviestar

4.4033 Huy hiệu vàng27 Huy hiệu bạc45 Huy hiệu Đồng3 gold badges27 silver badges45 bronze badges

1

Đây là một Quickie.

var valuesArr = ["v1","v2","v3","v4","v5"];
var removeValFrom = [0, 2, 4];
valuesArr = valuesArr.filter(function(value, index) {
     return removeValFrom.indexOf(index) == -1;
})
3

Đã trả lời ngày 19 tháng 12 năm 2017 lúc 20:17Dec 19, 2017 at 20:17

1

Thử cái này

var valuesArr = ["v1","v2","v3","v4","v5"];
var removeValFrom = [0, 2, 4];
valuesArr = valuesArr.filter(function(value, index) {
     return removeValFrom.indexOf(index) == -1;
})
4

Đã trả lời ngày 29 tháng 10 năm 2021 lúc 13:37Oct 29, 2021 at 13:37

pathe.kiranpathe.kiranpathe.kiran

2.3641 Huy hiệu vàng20 Huy hiệu bạc27 Huy hiệu đồng1 gold badge20 silver badges27 bronze badges

Có vẻ như áp dụng có thể là những gì bạn đang tìm kiếm. Có lẽ một cái gì đó như thế này sẽ hoạt động?
maybe something like this would work?

var valuesArr = ["v1","v2","v3","v4","v5"];
var removeValFrom = [0, 2, 4];
valuesArr = valuesArr.filter(function(value, index) {
     return removeValFrom.indexOf(index) == -1;
})
5

Đã trả lời ngày 24 tháng 2 năm 2012 lúc 3:53Feb 24, 2012 at 3:53

RobrobRob

2.9684 Huy hiệu vàng30 Huy hiệu bạc32 Huy hiệu Đồng4 gold badges30 silver badges32 bronze badges

1

var valuesArr = ["v1","v2","v3","v4","v5"];
var removeValFrom = [0, 2, 4];
valuesArr = valuesArr.filter(function(value, index) {
     return removeValFrom.indexOf(index) == -1;
})
6

Những công việc này. Tuy nhiên, bạn sẽ tạo một mảng mới trong quá trình. Không chắc bạn có muốn hay không, nhưng về mặt kỹ thuật, nó sẽ là một mảng chỉ chứa các giá trị bạn muốn.

Đã trả lời ngày 23 tháng 6 năm 2018 lúc 16:42Jun 23, 2018 at 16:42

Bạn có thể thử các chức năng thư viện Lodash JS (

var array = [ 
    { id: 1, name: 'bob', faveColor: 'blue' }, 
    { id: 2, name: 'jane', faveColor: 'red' }, 
    { id: 3, name: 'sam', faveColor: 'blue' }
];

// remove people that like blue

array.filter(x => x.faveColor === 'blue').forEach(x => array.splice(array.indexOf(x), 1));
0,
var array = [ 
    { id: 1, name: 'bob', faveColor: 'blue' }, 
    { id: 2, name: 'jane', faveColor: 'red' }, 
    { id: 3, name: 'sam', faveColor: 'blue' }
];

// remove people that like blue

array.filter(x => x.faveColor === 'blue').forEach(x => array.splice(array.indexOf(x), 1));
1). Tôi đã sử dụng kỹ thuật này để loại bỏ nhiều hàng khỏi bảng.

var valuesArr = ["v1","v2","v3","v4","v5"];
var removeValFrom = [0, 2, 4];
valuesArr = valuesArr.filter(function(value, index) {
     return removeValFrom.indexOf(index) == -1;
})
7

Đừng quên nhân bản (

var array = [ 
    { id: 1, name: 'bob', faveColor: 'blue' }, 
    { id: 2, name: 'jane', faveColor: 'red' }, 
    { id: 3, name: 'sam', faveColor: 'blue' }
];

// remove people that like blue

array.filter(x => x.faveColor === 'blue').forEach(x => array.splice(array.indexOf(x), 1));
2 hoặc
var array = [ 
    { id: 1, name: 'bob', faveColor: 'blue' }, 
    { id: 2, name: 'jane', faveColor: 'red' }, 
    { id: 3, name: 'sam', faveColor: 'blue' }
];

// remove people that like blue

array.filter(x => x.faveColor === 'blue').forEach(x => array.splice(array.indexOf(x), 1));
3) trước khi biến đổi mảng của bạn

Đã trả lời ngày 16 tháng 3 năm 2021 lúc 11:36Mar 16, 2021 at 11:36

EgilsegilsEgils

12 huy hiệu đồng2 bronze badges

Bạn có thể thử và sử dụng

var array = [ 
    { id: 1, name: 'bob', faveColor: 'blue' }, 
    { id: 2, name: 'jane', faveColor: 'red' }, 
    { id: 3, name: 'sam', faveColor: 'blue' }
];

// remove people that like blue

array.filter(x => x.faveColor === 'blue').forEach(x => array.splice(array.indexOf(x), 1));
4 Điều này sẽ không hoàn toàn loại bỏ phần tử mà thay vào đó đặt giá trị thành
var array = [ 
    { id: 1, name: 'bob', faveColor: 'blue' }, 
    { id: 2, name: 'jane', faveColor: 'red' }, 
    { id: 3, name: 'sam', faveColor: 'blue' }
];

// remove people that like blue

array.filter(x => x.faveColor === 'blue').forEach(x => array.splice(array.indexOf(x), 1));
5.

Đã trả lời ngày 24 tháng 2 năm 2012 lúc 3:45Feb 24, 2012 at 3:45

HenesnarfelhenesnarfelHenesnarfel

2.1291 Huy hiệu vàng16 Huy hiệu bạc18 Huy hiệu đồng1 gold badge16 silver badges18 bronze badges

1

var valuesArr = ["v1","v2","v3","v4","v5"];
var removeValFrom = [0, 2, 4];
valuesArr = valuesArr.filter(function(value, index) {
     return removeValFrom.indexOf(index) == -1;
})
8

Đã trả lời ngày 18 tháng 11 năm 2020 lúc 12:12Nov 18, 2020 at 12:12

Hướng dẫn remove multiple elements from array javascript - xóa nhiều phần tử khỏi javascript mảng

Ramesh Vishnoiramesh VishnoiRamesh Vishnoi

1.2211 Huy hiệu vàng12 Huy hiệu bạc19 Huy hiệu đồng1 gold badge12 silver badges19 bronze badges

1

Đối với nhiều mục hoặc mục duy nhất:

Tôi đề nghị bạn sử dụng Array.prototype.filter

Đừng bao giờ sử dụng indexof nếu bạn đã biết chỉ mục!:

var valuesArr = ["v1","v2","v3","v4","v5"];
var removeValFrom = [0, 2, 4];
valuesArr = valuesArr.filter(function(value, index) {
     return removeValFrom.indexOf(index) == -1;
})
9

Do:

với băm ... sử dụng mảng.prototype.map

while(IndexesToBeRemoved.length) {
    elements.splice(IndexesToBeRemoved.pop(), 1);
}
0

Đã trả lời ngày 14 tháng 1 năm 2018 lúc 0:07Jan 14, 2018 at 0:07

Alvaro Silvinoalvaro SilvinoAlvaro Silvino

9.01111 Huy hiệu vàng49 Huy hiệu bạc78 Huy hiệu đồng11 gold badges49 silver badges78 bronze badges

0

Bạn có thể xây dựng một

var array = [ 
    { id: 1, name: 'bob', faveColor: 'blue' }, 
    { id: 2, name: 'jane', faveColor: 'red' }, 
    { id: 3, name: 'sam', faveColor: 'blue' }
];

// remove people that like blue

array.filter(x => x.faveColor === 'blue').forEach(x => array.splice(array.indexOf(x), 1));
6 từ mảng và sau đó tạo một mảng từ tập hợp.

while(IndexesToBeRemoved.length) {
    elements.splice(IndexesToBeRemoved.pop(), 1);
}
1

Hướng dẫn remove multiple elements from array javascript - xóa nhiều phần tử khỏi javascript mảng

m02ph3u5

2.8756 huy hiệu vàng39 Huy hiệu bạc49 Huy hiệu đồng6 gold badges39 silver badges49 bronze badges

Đã trả lời ngày 11 tháng 1 năm 2020 lúc 15:59Jan 11, 2020 at 15:59

MohibmohibMohib

11 Huy hiệu Đồng1 bronze badge

Làm cách nào để loại bỏ nhiều phần tử khỏi một mảng?

Cách tiếp cận 1: Lưu trữ chỉ số của các phần tử mảng vào một mảng khác cần được loại bỏ. Bắt đầu một vòng lặp và chạy nó đến số lượng các phần tử trong mảng. Sử dụng phương thức splice () để loại bỏ phần tử tại một chỉ mục cụ thể.Use splice() method to remove the element at a particular index.

Làm thế nào để bạn loại bỏ tất cả các yếu tố từ một mảng?

Thay thế bằng một mảng mới - mảng = []; Đây là cách nhanh nhất. ....
Cài đặt độ dài prop thành 0 - mảng.length = 0. Điều này sẽ xóa mảng hiện có bằng cách đặt độ dài của nó thành 0. ....
Liên kết toàn bộ mảng.mảng.splice (0, mảng.length) Điều này sẽ xóa tất cả các phần tử khỏi mảng và thực sự sẽ làm sạch mảng gốc ..

Làm thế nào để bạn loại bỏ một phần tử khỏi một mảng trong JavaScript?

Các phần tử mảng có thể bị xóa bằng cách sử dụng xóa toán tử JavaScript.Sử dụng xóa các lỗ không xác định trong mảng.Sử dụng pop () hoặc thay đổi () thay thế.using the JavaScript operator delete . Using delete leaves undefined holes in the array. Use pop() or shift() instead.

Bạn có thể loại bỏ các phần tử khỏi một mảng không?

Bạn có thể loại bỏ các phần tử từ cuối một mảng bằng POP, từ đầu bằng cách sử dụng Shift hoặc từ giữa bằng cách sử dụng Splice.Phương thức bộ lọc mảng JavaScript để tạo một mảng mới với các mục mong muốn, một cách tiên tiến hơn để loại bỏ các phần tử không mong muốn.. The JavaScript Array filter method to create a new array with desired items, a more advanced way to remove unwanted elements.