在确定阵列上的@Autowired
private MultipartProperties multipartProperties = new MultipartProperties();
@Bean
public MultipartResolver multipartResolver() {
LOG.debug("initializing MultipartResolver");
MultipartConfigElement config = multipartProperties.createMultipartConfig();
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
multipartResolver.setResolveLazily(true);
multipartResolver.setMaxUploadSize(config.getMaxRequestSize());
multipartResolver.setMaxUploadSizePerFile(config.getMaxFileSize());
return multipartResolver;
}
时是否可以使用多个参数?
我想确定我的数组是否包含三个整数中的任何一个。在此阶段需要注意的是,数组仅具有一个值(如果它有更多值,则不会到达此代码块)。
indexOf
因此,如果array.indexOf(123 || 124 || 125) === 0
,那么我的array = [123]
应为indexOf
,因此0
。
如果true
,那么我的array = [124]
应为0,因此indexOf
。
我发现正在发生的事情是true
工作正常但是它甚至没有费心去检查[123]
第二个或第三个参数,并且只是返回false。
答案 0 :(得分:10)
||
运算符返回左侧(如果为true),否则返回右侧。 123 || 124 || 125
仅表示123
。
如果要测试数组中是否有多个值,则必须依次测试每个值。
array.indexOf(123) == 0 || array.indexOf(124) == 0 || array.indexOf(125) == 0
由于你只关心数组的一个特定索引,所以你可以将整个事情放在首位:
[123, 124, 125].indexOf(array[0]) > -1
答案 1 :(得分:3)
您可以使用Array.some()
执行此操作。
这种方法的好处是你只需要迭代一次数组。如果您||
多个indexOf()
一起调用,那么您将会在每次错过搜索时继续迭代数组。
function checkArray(array) {
return array.some(function(item) {
return item == 123 || item == 124 || item == 125;
});
};
console.log(checkArray([123, 456, 789]));
console.log(checkArray([456, 789]));
console.log(checkArray([789, 456, 125]));

答案 2 :(得分:-1)
如果您想获得多个结果,另一种方法是Array.prototype.filter()
。这将返回对象本身。如果您对索引感兴趣,那么您必须将其与Array.prototype.reduce()
结合使用,例如;
var a = [1,2,3],
b = a.filter(e => e === 1 || e === 2)
.reduce((p,c) => p.concat(a.indexOf(c)),[]);
console.log(b);