bla*_*arg 27 javascript arrays
我有一个函数使用表示为的数组值
markers[i]
Run Code Online (Sandbox Code Playgroud)
如何选择除此之外的数组中的所有其他值?
这样做的目的是将所有其他Google地图图像重置为原始状态,但通过更改图像突出显示新图像.
Dhr*_*hak 16
使用array.splice方法获取排除此元素的元素数组.
这将永久影响阵列,如果您不想这样,请先创建一个副本.
var origArray = [0,1,2,3,4,5];
var cloneArray = origArray.slice();
var i = 3;
cloneArray.splice(i,1);
console.log(cloneArray.join("---"));
Run Code Online (Sandbox Code Playgroud)
Yel*_*yev 15
您可以使用ECMAScript 5 Array.prototype.filter:
var items = [1, 2, 3, 4, 5, 6];
var current = 2;
var itemsWithoutCurrent = items.filter(function(x) { return x !== current; });
Run Code Online (Sandbox Code Playgroud)
可以有任何比较逻辑而不是x !== current.例如,您可以比较对象属性.
如果您使用基元,您还可以创建一个自定义函数except,它将引入此功能:
Array.prototype.except = function(val) {
return this.filter(function(x) { return x !== val; });
};
// Usage example:
console.log([1, 2, 3, 4, 5, 6].except(2)); // 1, 3, 4, 5, 6
Run Code Online (Sandbox Code Playgroud)
小智 7
您还可以在Filter 中使用第二个回调参数:
const exceptIndex = 3;
const items = ['item1', 'item2', 'item3', 'item4', 'item5'];
const filteredItems = items.filter((value, index) => exceptIndex !== index);
Run Code Online (Sandbox Code Playgroud)
您可以使用 slice()方法
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1,3);
Run Code Online (Sandbox Code Playgroud)
slice() 方法将数组中选定的元素作为新的数组对象返回。