如何使用循环和切片 and/or concat 在数组的每个索引上插入一个值?
How can I insert a value on every index of array using a loop and slice and/or concat?
我目前正在为学校做作业,真的需要你的帮助。
我必须声明一个函数,它接受两个参数 x 和一个数组 arr。它必须 return 一个包含多个数组的数组,其中 x 分别插入第一个数组中的索引 0,第二个数组中的索引 1 等等,直到数组中没有更多数字。请参阅示例图片并了解最终结果的预期外观。它必须在任何给定的数组上工作,并且分配指定 slice() 和 concat() 会很好用。 example of assignment
function insert_all_positions (x, arr) {
var newArr = [];
for(var i = 0; i < arr.length; i++) {
return(arr.concat(x)); }
};
这只是将 x 值添加到数组的末尾,我必须循环它以便将值插入到所有索引处。我在想 array.splice() 方法可以使用,我只是不确定如何使用它,因为我不是特别有经验。谢谢 :)
正如 Nina 所说:作业的理念是,您自己尝试一些事情,然后我们可以帮助您改进。
尽管如此,这里有一种简单的方法可以完成所需的工作:
function iap(v,arr){
var l=arr.length, ret=[];
for (var i=0;i<=l;i++) ret.push(arr.slice(0,i).concat([v],arr.slice(i,l)));
return ret;
}
console.log(iap(8,[1,2,3]));
试试这个
function myFunc(x,arr){
let result =[]
for(let i=0;i<arr.length;i++){
let arrToAdd = [...arr]
arrToAdd[i]=x
result.push(arrToAdd)
}
return result
}
您创建一个结果数组,然后将您的数组推入其中,然后您 运行 一个循环,该循环将 运行 确切的次数作为参数 arr 的长度。循环的每次迭代都会创建一个新数组,它是 arr 的副本,然后每次只需更改其中的一个数字并将整个数组添加到结果中。
我目前正在为学校做作业,真的需要你的帮助。 我必须声明一个函数,它接受两个参数 x 和一个数组 arr。它必须 return 一个包含多个数组的数组,其中 x 分别插入第一个数组中的索引 0,第二个数组中的索引 1 等等,直到数组中没有更多数字。请参阅示例图片并了解最终结果的预期外观。它必须在任何给定的数组上工作,并且分配指定 slice() 和 concat() 会很好用。 example of assignment
function insert_all_positions (x, arr) {
var newArr = [];
for(var i = 0; i < arr.length; i++) {
return(arr.concat(x)); }
};
这只是将 x 值添加到数组的末尾,我必须循环它以便将值插入到所有索引处。我在想 array.splice() 方法可以使用,我只是不确定如何使用它,因为我不是特别有经验。谢谢 :)
正如 Nina 所说:作业的理念是,您自己尝试一些事情,然后我们可以帮助您改进。
尽管如此,这里有一种简单的方法可以完成所需的工作:
function iap(v,arr){
var l=arr.length, ret=[];
for (var i=0;i<=l;i++) ret.push(arr.slice(0,i).concat([v],arr.slice(i,l)));
return ret;
}
console.log(iap(8,[1,2,3]));
试试这个
function myFunc(x,arr){
let result =[]
for(let i=0;i<arr.length;i++){
let arrToAdd = [...arr]
arrToAdd[i]=x
result.push(arrToAdd)
}
return result
}
您创建一个结果数组,然后将您的数组推入其中,然后您 运行 一个循环,该循环将 运行 确切的次数作为参数 arr 的长度。循环的每次迭代都会创建一个新数组,它是 arr 的副本,然后每次只需更改其中的一个数字并将整个数组添加到结果中。