如何按索引删除多个项目并保存删除的项目。我从列表框(例如selectedValues = [1, 4, 2]
)中获取了当前选定的值,并且有两个数组actives
availables
。我尝试以一种有效的方式移动选定的元素。
这就是我要解决的方法:
var actives = [ "a", "d", "k", "e"]
var availables = [ "m", "o", "v" ]
var selectedValues = [3, 1]
var elementsToMove = []
selectedValues.forEach(i => {
elementsToMove.push(actives[i])
})
actives = actives.filter(item => !elementsToMove.includes(item))
availables = availables.concat(elementsToMove);
console.log(actives);
console.log(availables);
预期输出:
actives = [ "a", "k" ]
availables = [ "m", "o", "v", "e", "d"]
注意:数组的长度可能非常大。
答案 0 :(得分:3)
内部有.filter
的{{1}}是.includes
。对于非常大的输入,这可能是一个问题。考虑将O(n ^ 2)
转换为Set,将整体计算复杂度变为elementsToMove
。您还可以通过使用O(n)
而不是elementsToMove
后跟.map
来更简洁地构造forEach
数组:
push
答案 1 :(得分:0)
您可以执行一个循环,然后将拼接的元素粘贴到另一个数组中。
Int32 unixTimestamp = (Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
Console.Write(unixTimestamp);
var currentTimeUn = unixTimestamp.ToString();
string json = "{ \"Method\": \"GetShippedOrders\",\"Params\": { \"DateMin\": 1575158400, \"DateMax\": {currentTimeUn} }}";