gpt4 book ai didi

javascript - 有条件地从数组中删除字符串

转载 作者:行者123 更新时间:2023-11-28 01:54:59 25 4
gpt4 key购买 nike

我正在尝试用 javascript 编写函数来从数组中删除字符串。数组是动态创建的,我时不时地向其中添加新字符串。当我从中删除字符串时,我首先检查字符串是否确实在其中。

我还有一个附加条件。如果要删除的字符串等于“自行车”,那么我还想检查“摩托车”,如果存在,也将其删除。如果给定的字符串是“摩托车”,我想删除可能出现的“自行车”。

到目前为止我有这样的事情:

options_array = []

function remove_option(option) {
var option_index = options_array.indexOf(option);
if(option_index != -1)
options_array.splice(option_index, 1);
if(option == 'bicycle') {
option_index = options_array.indexOf('motorbike');
if(option_index != -1)
options_array.splice(option_index, 1);
} else if(option == 'motorbike') {
option_index = options_array.indexOf('bicycle');
if(option_index != -1)
options_array.splice(option_index, 1);
}
}

它可以工作,但是有可能让它变得更好、更干燥吗?

最佳答案

参见Array.prototype.filter reference on mozilla developers network

请注意Array.filter需要ECMAScript第5版兼容环境。

示例实现

1。重新评估 options_array

var options_array = [ 'foo', 'bar', 'baz', 'bicycle', 'motorbike' ];

options_array = options_array.filter(function(value){
return value == 'bicycle';
});
// options_array is now [ 'foo', 'bar', 'baz', 'motorbike' ]

2。可重用函数与示例 #1 执行相同操作

var options_array = [ 'foo', 'bar', 'baz', 'bicycle', 'motorbike' ];

function remove_option( option_name ){
options_array = options_array.filter(function(value){
return value == 'bicycle';
});
}

remove_option( 'bicycle' );
// options_array is now [ 'foo', 'bar', 'baz', 'motorbike' ]
remove_option( 'foo' );
// options_array is now [ 'bar', 'baz', 'motorbike' ]

3。可重用函数与示例 #2 执行相同操作,但可使用任何数组

var options_array = [ 'foo', 'bar', 'baz', 'bicycle', 'motorbike' ];
var options_array2 = [ 'foo', 'bar', 'baz' ];

function remove_option( options_array, option_name ){
options_array = options_array.filter(function(value){
return value == 'bicycle';
});
}

remove_option( options_array, 'bicycle' );
// options_array is now [ 'foo', 'bar', 'baz', 'motorbike' ]
remove_option( options_array2, 'foo' );
// options_array2 is now [ 'bar', 'baz', 'bicycle', 'motorbike' ]

如果需要,您甚至可以构建一个对象原型(prototype)来管理选项数组,但我认为这些示例已经足够了。

关于javascript - 有条件地从数组中删除字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19249266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com