请考虑以下代码:
function splicer()
{
var arrayElements = ["elem1","elem2","elem3","elem4"];
for(var index in arrayElements)
{
arrayElements.splice(index,1);
}
alert("Elements: "+arrayElements);
}
Run Code Online (Sandbox Code Playgroud)
上述函数应该从数组中删除所有元素"arrayElements"
.但事实并非如此.
Javascript引擎保持"index"
原样并且不介意被修改的数组.人们可能会期待像"for each"
循环那样没有这种问题的东西
即使以下代码似乎不起作用:
function splicer()
{
...
for(var index in arrayElements)
{
arrayElements.splice(index--,1);
}
...
}
Run Code Online (Sandbox Code Playgroud)
即使改变变量"索引"的值似乎也不起作用.更改的值在"for(...){...}"块内可用,但是,当循环到达下一次迭代时,该值将重置并从下一个索引继续作为发条.
所以似乎这样的代码可能是唯一的解决方案:
function splicer()
{
var arrayElements = ["elem1","elem2","elem3","elem4"];
for(var index=0;index<arrayElements.length;index++)
{
arrayElements.splice(index--,1);
}
alert("Elements: "+arrayElements);
}
Run Code Online (Sandbox Code Playgroud)
测试:Firefox 16 Beta.
但是在一个"splice()"
方法中放置一元运算符似乎一见钟情.
这可能值得考虑到"W3C"
它可能关注的人或任何人,以便他们提出一个很好的解决方案.
有没有办法在Handlebars中获取当前迭代的对象?
码:
<script id="HandleBarTemplate1" type="text/x-handlebars-template">
{{#each objArr}}
<img src="{{objField1}}"/>
<strong>Name:</strong> {{objField2}}
<input type="button" onclick="processObject({{.}});"/>
{{/each}}
</script>
Run Code Online (Sandbox Code Playgroud)
我提到processObject({{.}})
那是不对的.这就是我需要更换/解决方案的地方.希望你能得到我想说的话.可能看起来像
的内容objArr
var objArr = [{objField1:"smith.jpg",objField2:"Smith"},{objField1:"jane.jpg",objField2:"Jane"},...]
Run Code Online (Sandbox Code Playgroud)
模板编译代码是:
var source = document.getElementById("HandleBarTemplate1").innerHTML;
var compiledTemplate = Handlebars.compile(source);
var html = compiledTemplate({objArr:objArr});
Run Code Online (Sandbox Code Playgroud)
如果我可以获得对象的引用,那么处理数据就很容易了.而不是将字段传递给函数并搜索整个数组以获取所需对象然后处理它.
我更喜欢没有自定义块助手/自定义表达式助手的解决方案,但如果不存在,我宁愿选择自定义块助手.任何不搜索整个阵列的解决方案都是受欢迎的!
我正在用萤火虫检查这个网站.在页面部分的第三个<script/>
标记内head
,我发现了一个以下面的方式声明的对象变量(但是我在这里被截断):
var EM={
"ajaxurl":"http:\/\/ipsos.com.au\/wp-admin\/admin-ajax.php",
"bookingajaxurl":"http:\/\/ipsos.com.au\/wp-admin\/admin-ajax.php",
"locationajaxurl":"http:\/\/ipsos.com.au\/wp-admin\/admin-ajax.php?action=locations_search",
"firstDay":"1","locale":"en"};
Run Code Online (Sandbox Code Playgroud)
变量的效用对我来说是未知的.令我印象深刻的是那里出现的3个网址.为什么那里有反向斜线?不可能是这样的:
"ajaxurl":" http://ipsos.com.au/wp-admin/admin-ajax.php "
?
我想知道下面脚本中的错误是什么
我得到错误: command not foundh: line 1:
,: command not foundh: line 2:
它是连续的
我试过添加,;
但现在工作,请告诉我该怎么办?
#!/bin/bash;
clear;
FILEREPO=http://192.168.1.2/cpplugin;
echo "-----------------------------------------------";
echo " Welcome to C-Panel Login Alert Installer";
echo "-----------------------------------------------";
cd /var/cpanel/;
mkdir perl5
cd perl5/
mkdir lib
cd lib/
wget $FILEREPO/LoginAlerthook.zip
unzip LoginAlerthook.zip
rm -r LoginAlerthook.zip
cd /
/usr/local/cpanel/bin/manage_hooks add module LoginAlert
chmod 777 LoginAlert.pm
echo " "
echo " Login Alert Script Hooked With C Panel Finished"
echo " "
Run Code Online (Sandbox Code Playgroud)