我陷入了一个场景,我必须在零索引处替换所选元素并将其他元素向右移动:
例如: 这些是动态数组(每次更改大小)但为了更好地理解,我只是举例:
示例
data = [{a:102,b:202},{a:234,b:332},{a:223,b:343}]
选择指数= 1
output = [{a:234,b:332},{a:102,b:202},{a:223,b:343}]
index.js
arrangeArray (data , selected) {
data = data.splice(0, selected)//selected =1
//[{a:234, b:332},{a: 102, b: 202},{a:234, b:332},{a:223, b:343}]
}
上面代码的问题是我可以在第一个索引添加但不能删除所选索引 任何帮助将不胜感激
答案 0 :(得分:0)
var data = [{a: 102, b: 202}, {a:234, b:332}, {a:223, b:343}]
//[{a:234, b:332},{a: 102, b: 202},{a:223, b:343}]
function arrangeArray(data , selected) {
var selectedData = data[selected]
var firstHalf = data.slice(0, selected)
var secondHalf = data.slice(selected + 1, data.length)
var newArray = [...firstHalf, ...secondHalf]
newArray.unshift(selectedData)
return newArray
}
console.log(arrangeArray(data, 1))

希望它可以提供帮助
答案 1 :(得分:0)
您可以使用array#splice
从给定索引中删除元素。 Array#splice
返回数组中已删除的元素,将其存储在变量中,然后使用array#unshift
添加已删除的元素。
以下语句将removedElement[0]
添加到0索引。
也可以使用array#splice
,data.splice(0, 0, removedElement[0])
splice()方法通过删除现有元素和/或添加新元素来更改数组的内容。
var data = [{a: 102, b: 202}, {a:234, b:332}, {a:223, b:343}];
var index = 1;
var removedElement = data.splice(index, 1);
data.splice(0, 0, removedElement[0]);
console.log(data);
var data = [{a: 102, b: 202}, {a:234, b:332}, {a:223, b:343}];
var index = 1;
var removedElement = data.splice(index, 1);
data.unshift(removedElement[0]);
console.log(data);
答案 2 :(得分:0)
这是一个简单的解决方案:
var copydata = data[selected]
data.splice(0,0,copydata) ///first copy the element
data.splice(selected,1) //cut the elemnt
return data