在Javascript中使用splice删除对象数组中某个位置后的所有元素
Remove all elements after a position in an array of objects in Javascript using splice
我想知道是否有一种简单的方法可以在关键位置后拼接出所有元素。
array.splice(index,howmany,item1,.....,itemX)
文档说指定要删除的元素数量的第二个元素是必填字段,完成此操作是否有警告?
p。S -不寻找正常的暴力解决方案
我想知道是否有一种简单的方法可以在json数组中的关键位置后拼接出所有元素。
如果关键位置后的所有元素都是,则执行以下操作:
array.length = theKeyPosition;
例如:
var array = [
"one",
"two",
"three",
"four",
"five",
"six"
];
var theKeyPosition = 3;
array.length = theKeyPosition; // Remove all elements starting with "four"
如果您还不知道关键位置,在ES5环境中(这可以被模糊),您可以使用filter
:
var array = [
"one",
"two",
"three",
"four",
"five",
"six"
];
var keep = true;
array = array.filter(function(entry) {
if (entry === "four") {
keep = false;
}
return keep;
});
这是使用字符串,但您可以轻松地将if (entry === "four") {
更改为if (entry.someProperty === someValue) {
为您的对象数组。
对于Array.prototype.splice()
,第二个参数实际上是可选的,并且仅使用第一个参数就可以实现所需的行为。
例如(从接受的答案中复制):
const array = [
"one",
"two",
"three",
"four",
"five",
"six"
];
const theKeyPosition = 3;
array.splice(theKeyPosition+1); // Remove all elements starting with "four"
console.log(array);
然而,我仍然喜欢设置长度属性,因为它应该更快(我找不到JSPerf结果,请在这里帮助我)。
在MDN或我对类似问题的其他回答上阅读更多相关内容。
相关文章:
- 从鼠标点(及更多)查询位置元素
- 保持光标位置元素在顶部使用 svg
- 如何在每次页面重新加载时更改渐变背景,同时保持光标位置元素处于活动状态
- 使用JS暂时禁用在位置/元素处滚动
- 相对于另一个元素的位置元素不起作用
- 返回包含随机位置元素的数组
- 如何在 Jquery 中根据屏幕大小移动绝对位置元素
- 如何在html中设置固定位置元素的最大深度
- 无论如何,如果绝对位置元素位于屏幕下方,则使正文滚动条出现
- 绝对位置元素未隐藏在滚动框之外
- 为什么浮动位置 元素缩小时元素不移动
- 固定位置元素…动作
- 当元素处于相对位置元素时,查找元素偏离窗口的jQuery或JavaScript方法
- 绝对位置元素,这样它们的行为就像浮动一样
- jQuery鼠标在菜单和动画位置元素后面
- 捕获绝对位置元素上的单击事件
- 如何设置固定位置元素的高度以达到浏览器窗口的底部
- jQuery绑定位置:元素的绝对位置
- 如何将固定位置元素限制为浏览器窗口的高度
- 如何在不使用JS的情况下使用TOC滚动页面上的固定位置元素