从 JavaScript 数组中删除特定索引
Deleting specific index from a JavaScript array
我写了一些代码,用于跟踪索引,我已经成功地跟踪了这些索引,但发现很难将它们从数组中删除,所以我对剩下的做同样的事情。
var v = [4, 7, 2,5, 3]
var f = []
for (let i = 1; i < v.length; i += 2){
/*(point1)this line doesn't seem to work*/
if (v[i] > v[i] - 1)
/*(point 2) Instead of console.log I want to delete every of v[i] */
console.log(v[i])
输出
7
5
删除 v[I] 时的预期输出
v = [4,2,3]
如果 v[i] > v[i] -1,我最好做类似拼接 v[i] 的操作,然后像拼接元素一样返回 v。
我首先在命令行中用类似的逻辑测试了第 1 点,它起作用了,但是.....;
if ((b[1] -1) > b[0]){console.log(b[2])}
输出
3
```
要删除数组的特定索引,您可以使用如下拼接。
var fruits = ["apple", "orange", "avocado", "banana"];
//remove one element starting from index 2
var removed = fruits.splice(2, 1);
//fruits is ["apple", "orange", "banana"]
//removed is ["avocado"]
但是,对于 if 逻辑,它将始终为真,因为您正在测试一个数字是否大于其本身减去 1。
如果你想测试当前数组位置的值是否大于前一个位置的值,那么你应该这样做。
if (v[i] > v[i-1])
通过从数组 v
中删除不需要的元素来构建新数组 res
var v = [4, 7, 2, 5, 3];
var res = [];
res.push(v[0]);
for (let i = 1; i < v.length; i += 1) {
if (v[i - 1] > v[i]) {
res.push(v[i]);
}
}
console.log(res);
尝试array object的过滤方法。
除了从当前数组中删除元素之外,您还可以使用数组对象的过滤方法过滤掉您想要的值并获得新数组。
var arr = [0, 1, 2, 3];
var filteredArr = arr.filter(function(element, currentIndex, arrObj) {
//currentIndex and arrObj can be used to form your desired condition but they are
//optional parameter
// below is the filter condition to be applied on each element
return element > 0;
});
console.log('filteredArr will have all the elements of the array which satisfies the filter condition:', filteredArr);
我写了一些代码,用于跟踪索引,我已经成功地跟踪了这些索引,但发现很难将它们从数组中删除,所以我对剩下的做同样的事情。
var v = [4, 7, 2,5, 3]
var f = []
for (let i = 1; i < v.length; i += 2){
/*(point1)this line doesn't seem to work*/
if (v[i] > v[i] - 1)
/*(point 2) Instead of console.log I want to delete every of v[i] */
console.log(v[i])
输出
7
5
删除 v[I] 时的预期输出
v = [4,2,3]
如果 v[i] > v[i] -1,我最好做类似拼接 v[i] 的操作,然后像拼接元素一样返回 v。
我首先在命令行中用类似的逻辑测试了第 1 点,它起作用了,但是.....;
if ((b[1] -1) > b[0]){console.log(b[2])}
输出
3
```
要删除数组的特定索引,您可以使用如下拼接。
var fruits = ["apple", "orange", "avocado", "banana"];
//remove one element starting from index 2
var removed = fruits.splice(2, 1);
//fruits is ["apple", "orange", "banana"]
//removed is ["avocado"]
但是,对于 if 逻辑,它将始终为真,因为您正在测试一个数字是否大于其本身减去 1。 如果你想测试当前数组位置的值是否大于前一个位置的值,那么你应该这样做。
if (v[i] > v[i-1])
通过从数组 v
res
var v = [4, 7, 2, 5, 3];
var res = [];
res.push(v[0]);
for (let i = 1; i < v.length; i += 1) {
if (v[i - 1] > v[i]) {
res.push(v[i]);
}
}
console.log(res);
尝试array object的过滤方法。
除了从当前数组中删除元素之外,您还可以使用数组对象的过滤方法过滤掉您想要的值并获得新数组。
var arr = [0, 1, 2, 3];
var filteredArr = arr.filter(function(element, currentIndex, arrObj) {
//currentIndex and arrObj can be used to form your desired condition but they are
//optional parameter
// below is the filter condition to be applied on each element
return element > 0;
});
console.log('filteredArr will have all the elements of the array which satisfies the filter condition:', filteredArr);