如何在javascript中编写一个帮助程序,用于将数组和字符串相乘
How to write a helper in javascript for Multiplying arrays and strings together?
这只是我试图学习javascript的一个思想实验和一个叫做鸭子打字的想法。
function calc(a,b,c) {
return (a+b)*c;
}
var example1 = calc(1,2,3);
var example2 = calc([1,1,3],[2,2,3],3);
var example3 = calc ('ape ', 'and cat, ', 3)
console.log(example1, example2, example3);
如何使返回值如下所示:
9
[1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6]
ape and cat, ape and cat, ape and cat,
目前,它们将打印为:
9
NaN
NaN
LO-dash 中有帮手吗?
下面是示例代码:http://repl.it/4zp/2
这应该适用于字符串、数字和数组。此外,如果我们想以类似于字符串的方式隐式使用 + 运算符,我确实考虑了将数组转换为字符串并再次转换回来的想法。
function calc(a, b, c) {
var combine, total,
isArray = a instanceof Array && b instanceof Array,
i;
combine = total = isArray ? a.concat(b) : a + b;
for (i = 1; i < c; i++) {
total = isArray ? total.concat(combine) : total += combine;
}
return total;
}
它
只是为了向您展示它应该做什么以及鸭子输入意味着什么。但是实现应该由 you.it 完成,可能是这样的:
function calc(a,b,c) {
var ret=[];
if(a.constructor === Array && b.constructor === Array){
for(i=0;i<c;i++){
ret=ret.concat(a.concat(b));
}
return ret;
}
if(typeof a == 'string' && typeof b == 'string'){
var str='';
for(i=0;i<c;i++){
str=str+a+b;
}
return str;
}
return (a+b)*c;
}
var example1 = calc(1,2,3);
console.log(example1)
var example2 = calc([1,1,3],[2,2,3],3);
console.log(example2)
var example3 = calc ('apples ', 'and oranges, ', 3)
console.log(example3)
注意:您可以向其添加更多条件。
相关文章:
- {{#each}}内部的Handlebar帮助程序
- Handlebars帮助程序未获取变量的值
- Node Express Handlebars帮助程序未返回函数的结果
- 如何让应用程序帮助程序方法在发送的请求为 JS 格式时工作
- 从帮助程序异步返回值
- 无法使用模板帮助程序设置正文类
- 在呈现模板之前调用帮助程序
- 花式框 V2 按钮帮助程序冲突
- 在帮助程序处获取对象值的车把,无需使用数据进行编译
- {{outlet}}、{{yield}、}{render}和{{partial}的ember帮助程序之间存在差异
- 模板帮助程序在session.set之后未更新
- 引导程序窗体帮助程序-状态选择器-选择类
- 如何在HTMLBars中编写帮助程序
- 使用自定义断言帮助程序对cli扩展assert进行ember-cli扩展
- 引导窗体帮助程序选择框
- 在模板帮助程序中连接两个查询的结果
- 将字符串中的URL替换为包含匹配URL的HTML字符串的Handlebar帮助程序
- 在Handlebars.js中查询块帮助程序
- 使用帮助程序中使用的模态传递轨道变量link_to
- 如何在javascript中编写一个帮助程序,用于将数组和字符串相乘