将变量数据类型解析为包含JavaScript中数据类型条件检查的函数
要将不同的数据类型(从数组到整数)传递给同一个函数,然后在更改其值之前检查数据类型,请查看下面使用instanceof array的方法是否有更好/更有效的方法将变量数据类型解析为包含JavaScript中数据类型条件检查的函数,javascript,Javascript,要将不同的数据类型(从数组到整数)传递给同一个函数,然后在更改其值之前检查数据类型,请查看下面使用instanceof array的方法是否有更好/更有效的方法 function foo(x) { if (x instanceof Array) { for(i=0;i<x.length;i++){ x[i].bar = '1'; x[i].baz = '2'; } } else{ x.bar = '1
function foo(x) {
if (x instanceof Array) {
for(i=0;i<x.length;i++){
x[i].bar = '1';
x[i].baz = '2';
}
}
else{
x.bar = '1';
x.baz = '2';
}
}
函数foo(x){
if(数组的x实例){
对于(i=0;i一个替代方案(使用ECMAScript标准)
更有效的方法还可以是拆分您的功能(如果您有可能):
函数数组(x){
对于(i=0;i
这也将应用DRY原则(“不要重复你自己”),因为你不需要两次编写相同的逻辑(即
x.bar='1';
)。Object.prototype.toString.call(x)==”[Object Array]“
,这是一种替代方法,但即使你的方法在更新的浏览器中也是很好的->Array.isArray(x)
第一种方法是ECMAScript中提供的用于查找对象类的方法。第二种方法,正如我所说的,由于性能原因,不推荐使用。
if( Object.prototype.toString.call( x ) === '[object Array]' ) {
for(i=0;i<x.length;i++) {
x[i].bar = '1';
x[i].baz = '2';
}
}
x = [].concat( x );
function fooArray(x) {
for(i = 0; i < x.length; i++){
foo(x[i]);
}
}
function foo(x) {
x.bar = '1';
x.baz = '2';
}