Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:Array-isn';t改变,它';什么虫子?_Javascript_Arrays - Fatal编程技术网

Javascript:Array-isn';t改变,它';什么虫子?

Javascript:Array-isn';t改变,它';什么虫子?,javascript,arrays,Javascript,Arrays,数组不随[…]两种方法更改。拼接(索引,1,更改)和[…][index]=change方法。有关更多信息,请参见示例 注意:我知道js,它在任何地方都会变化,除了t==1。 有人能解释这种行为吗?这是一个已知的bug,还是有解决方案 我想找到解决方案,因为我想创建“Interpolator for Tweening library”,并支持相对字符串(对象、数组、数字在后面我会添加) //RegExp变量 var numRegExp= /\s+|([A-Za-z?(),{}:[\]\\]+)|

数组不随
[…]两种方法更改。拼接(索引,1,更改)
[…][index]=change
方法。有关更多信息,请参见示例

注意:我知道js,它在任何地方都会变化,除了
t==1
。 有人能解释这种行为吗?这是一个已知的bug,还是有解决方案

我想找到解决方案,因为我想创建“Interpolator for Tweening library”,并支持相对字符串(对象、数组、数字在后面我会添加)

//RegExp变量
var numRegExp=
/\s+|([A-Za-z?(),{}:[\]\\]+)|([-+/*%]+=)([-+*/%]+)(?:\d+\.\d*.\d+([eE][-+].\d+)/g;
//助手
功能s2f(val){
var FLOTEDVAL=解析浮点(val);
返回flootedval的类型==“number”&&&!isNaN(flootedval)?flootedval:val;
}
var relativeModes={
'+=': 1,
'-=': 1,
'*=': 2,
'/=': 3,
'%=': 4
};
功能r2n(s,e){
如果(e的类型=='number'){
返回e-s;
}否则{
var rv=相对模式[e.substr(0,2)],
v=e.R(2);
如果(rv==1){
var e2=e[0]+v;
返回(s+e2))-s;
}否则如果(rv==2){
返回(s*+v)-s;
}否则如果(rv==3){
返回(s/+v)-s;
}否则如果(rv==4){
返回(s*(+v/100))-s;
}
}
返回e;
}
功能s2n(str){
返回str.match(numRegExp).map(s2f);
}
//分裂函数
var stringTween=函数(s、e、d){
d=d!==未定义?d:10000;
var sv=s2n(s);
var ev=s2n(e);
var rv=电动地图(功能(e,i){
返回类型e=='string'&&e.indexOf('=')==1?e:null;
});
电动势=电动势图(功能(e,i){
返回rv[i]!==null?r2n(sv[i],e):e的类型==='number'?e-sv[i]:e;
});
返回函数(t){
var-str='';
对于(变量i=0,len=ev.length;i';
sv[i]+=b;
ev[i]=r2n(sv[i],r);
}
}
返回str;
}
}
//测试用例
var st=performance.now(),
rep=1;
请求动画帧(函数动画(时间){
var t=(时间-st)/2000;
t=t>1?1:t;
document.body.innerHTML++=stringTween('translate3d(10px,20px,30px)','translate3d(+=20px,30px,35px)')(t)+'
'; 如果(t==1){ 如果(代表>0){ 代表--; st=时间 }否则{ 返回false; } } 请求动画帧(anim); });
#注意{
颜色:红色;
}
html{
字体系列:Arial;
字号:1em;
}
测试模式
-Chrome
-NodeJS 6.x
-IE Edge

请不要用不相关的答案来教我,比如在帧循环外使用选择器、优化它、减少重新播放、缓存节点


函数变量不能在函数间共享

函数变量不能在函数间共享

这真是太多代码了。请尽量减少它。顺便说一句,
|0
看起来很聪明,但它将数字范围减少到32位。你的代码应该做什么?你不能期望人们解密你想在这里实现的任何东西。我减少了代码并删除了不必要的代码,我希望现在有人能帮助解决这个问题,因为我需要相对的支持,当我完成后,我会将它发布到npm供自己和他人使用。在NPM注册表上有字符串tween,但还没有相对的支持。这将是第一个支持相对的内插器(我尝试成为最聪明、轻量级和快速的内插器)@cbll我尝试获得相对的字符串tweening(对象、数组、数字在后面都支持),这是只支持字符串的内插器函数。这真的是很多代码。请尽量减少它。顺便说一句,
|0
看起来很聪明,但它将数字范围减少到32位。你的代码应该做什么?你不能期望人们解密你想在这里实现的任何东西。我减少了代码并删除了不必要的代码,我希望现在有人能帮助解决这个问题,因为我需要相对的支持,当我完成后,我会将它发布到npm供自己和他人使用。在NPM注册表上有字符串tween,但还没有相对的支持。这将是第一个支持相对的插值器(我尝试成为最智能、轻量级和快速的插值器)@cbll我尝试获得相对字符串tweening(后面支持对象、数组和数字),这是仅用于字符串的插值器函数