将变量数据类型解析为一个函数,该函数在JavaScript中包含对数据类型的条件检查
Parsing a variable datatype to a function which contains a conditional check on the datatype in 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';
x.baz = '2';
}
}
谢谢:)
另一种选择(使用ECMAScript标准)
if( Object.prototype.toString.call( x ) === '[object Array]' ) {
for(i=0;i<x.length;i++) {
x[i].bar = '1';
x[i].baz = '2';
}
}
看到ECMAScript
或者如果您总是希望它作为一个数组,但不建议这样做
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';
}
这也将应用DRY原则("不要重复自己"),因为您不需要编写两次相同的逻辑(即x.bar = '1';
)。
相关文章:
- javascript解释器如何理解变量的数据类型
- 从查询字符串参数推断出正确的数据类型
- 为什么不'我们在javascript中使用函数参数的数据类型
- 基于数据类型的编辑框的汇总列表
- 如何降低此函数的复杂性,该函数根据数据类型进行回调
- 比较和分配数据类型的困难
- 在javascript中调用函数/对象引用时,可容纳任何数据类型
- E4X中是否有一种方法可以将基元数据类型的XMLList转换为类似于Array.join()的Array
- 为什么或者为什么不缩写某些数据类型的核心函数
- canvas' toDataURL() 函数可能的数据类型是什么?
- 什么是函数的数据类型:函数还是对象?在 JavaScript 中
- 我如何使用自定义“;类“;(函数)作为javascript中的数组数据类型
- 测试函数参数的数据类型的正确性
- 将变量数据类型解析为一个函数,该函数在JavaScript中包含对数据类型的条件检查
- 同一个函数参数能接受不同的数据类型吗?
- 是否可以说JS函数可以是数据类型?
- 当用于ajax调用webservice的数据类型为json "时,如何将成功函数的结果与字符串进行比较
- Javascript函数派生" smallst& quot;数据类型
- 为什么此函数无法计算给定参数的数据类型
- 未捕获的类型错误:未定义不是函数-数据表