我想创建一个可以操作数组的函数...逻辑操作,以删除索引
var myArray = [2, 1, 1, 1, 1];
现在我希望它是这样
[3,1 ,1,1]
现在我的函数接受3个参数
- ArrayToProcess - 以及其将被处理
- 阵列indexTarget - 这是受索引
- 定义的所选值morphToValue - 这是我想选择的值成为值。
以及我的目标是接受indexTarget其中例如
myFunction(myArray,0,3); //myArray is [2, 1, 1, 1, 1]
,你可以看到我想我的功能遍历所有的myArray
所以它会尝试在阵列中添加数字,直到它会到达morphToValue
,因此它变成[3,1,1,1],它清除第一个索引上的2
和第二个索引上的1
以获得3
。 它只是还减去任意数量的阵列上,如果添加了太多上的morphToValue
另一个例子是这样超出我想要的阵列
VAR myArray的= [2,1,1 ,1,1];
是这样
[2, 1, 3];
通过做这样
myFunction(myArray,2,3);
调用myFunction的我怎样才能使这个可能吗?如果我将在数组的最后一个索引中设置indexTarget,所以它会是这样的
var myArray = [2,1,1,1,1 ]。
它将成为
[1, 1, 1, 3]; //when I invoke myFunction(myArray,4,3);
请加注释,如果你不明白的东西....
这就是我试图到目前为止http://jsfiddle.net/eESNj/
var myArray = ['2', '1', '1', '1', '1'];
indexPurge(myArray, 0, 3);
function indexPurge(haystack, indexTarget, morphToValue) {
var toIntHaystack = [];
for (var i = 0; i < haystack.length; i++) {
toIntHaystack.push(parseInt(haystack[i]));
}
console.log(toIntHaystack); //before
var i = 0;
var purgedValue = 0;
do {
console.log(i + ' - ' + toIntHaystack[i]);
purgedValue += toIntHaystack[i];
toIntHaystack.splice(i, 1);
if (purgedValue >= morphToValue) {
break;
}
i++;
} while (i < toIntHaystack.length);
toIntHaystack.splice(indexTarget, 0, morphToValue); //after
console.log(toIntHaystack);
}
请出示你已经尝试了什么,我们不是在这里做你的工作您。 – Barmar
@Barmar我重新编辑了我的帖子,我把它放在小提琴上http://jsfiddle.net/eESNj/ –
然后这个:'myFunction(myArray,0,3); // myArray是[2,1,1,1,1]“它应该是这样吗? myFunction的(myArray的,0,2); // myArray是[2,1,1,1,1]' – aIKid