参数化函数
Parameterizing a function
我有这样的代码:
<!DOCTYPE html>
<html>
<body>
<h2>JSON Array Test</h2>
<p id="outputtext"></p>
<script language="javascript" type="text/javascript">
var arrayinput = {
collection:[
{firstAttr:"XXXA",secAttr:"13156161",lastAttr:"01" },
{firstAttr:"XXXB",secAttr:"11153325",lastAttr:"02" },
{firstAttr:"XXXC",secAttr:"14431513",lastAttr:"03" },
{firstAttr:"XXXC",secAttr:"13312163",lastAttr:"01" }]};
var outputElement = document.getElementById("outputtext");
function arrayscanner(arrayvar, container, scanvar){
arrayvar.container.filter(function(item) {
return item.lastAttr = scanvar;
})};
var filteredArr = new Array();
filteredArr = arrayscanner("arrayinput", "collection", "01");
for (var i=0; i<filteredArr.length; i++) {
outputElement.insertAdjacentHTML("beforeend", item.firstAttr + " " + item.secAttr + ", ");
};
</script>
</body>
</html>
由于某些原因,这不起作用。我得到的错误信息是:
Element type "filteredArr.length" must be followed by either attribute specifications, ">" or "/>".
我正试图使用函数可重复使用参数。我需要给数组名称,容器名称和值,我正在扫描的功能。输出可以只有一行。
我哪里错了?
要将容器设置为对象属性,不能使用点表示法。使用括号符号代替:
function arrayscanner(arrayvar, container, scanvar){
arrayvar[container].filter(function(item) {
return item.lastAttr = scanvar;
})};
另外,在运行函数时,将实际的数组作为参数传递,而不是带有数组名称的字符串。最后,您没有从arrayscanner
函数返回任何东西。它有助于在编写代码时对代码进行故障排除,如果一小部分不起作用,您不应该继续编写更多代码。我已经添加了几个console.log
来帮助您展示您可以在哪里确定这些问题。
您会注意到我找到了三个不同的问题,并且代码仍然没有实际附加到HTML中。在Stack Overflow中,您需要隔离您自己遇到的单个问题。你不应该在不知道代码哪里出错的情况下发布代码。
找到单个故障点不仅有利于在这里发布,而且也是一项关键的编程技能。
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- AngularJS:我可以跳过函数参数回调吗
- 为什么不'我们在javascript中使用函数参数的数据类型
- 使用闭包共享构造函数参数
- 函数参数的值错误
- 当一个重要的构造函数参数丢失时应该发生什么
- 阻止ReSharper将JavaScript函数参数放到新行中
- 根据函数参数将CSS值存储在var中,然后对其进行操作
- 使构造函数参数具有ES6类方法的特权
- 当客户端将两个按钮的javascript函数参数修改为相同时,SQL/PHP会更新多行
- Windows.Networking.EndpointPair构造函数参数
- 是否可以使用Sinon.JS检查函数参数绑定是否正确
- 大括号中的Javascript函数参数
- jQuery 无法使用 AJAX 调用访问函数内部的函数参数
- 将JSON字符串转换为函数参数
- eval()读取函数参数有多糟糕
- Javascript不能在一个命令中使用函数参数
- 函数参数在内部不可见,返回新的Promise(函数(resolve,reject).传递给被promise化的函数的
- ES6类构造函数参数
- 是否可以在javascript函数参数列表中调用多个函数