js 如果删除数组某个元素的右侧所有元素?

let data = [
    { text: "根目录", id: 9521 },
    { text: "子目录一", id: 880 },
    { text: "子目录二", id: 196320 },
]

传入:{ text: "子目录一", id: 880 }
期望输出:

[
    { text: "根目录", id: 9521 },
    { text: "子目录一", id: 880 },
]

传入:{ text: "根目录", id: 9521 }
期望输出:

[
    { text: "根目录", id: 9521 }
]
阅读 1.8k
4 个回答
const data = [{ text: "根目录", id: 9521 },
{ text: "子目录一", id: 880 },
{ text: "子目录二", id: 196320 }];
const target = {id: 880};
const index = data.findIndex(t => t.id === target.id);
const result = data.slice(0, index < 0 ? data.length : index + 1);
  let data = [
    { text: "根目录", id: 9521 },
    { text: "子目录一", id: 880 },
    { text: "子目录二", id: 196320 },
  ]
  function del (obj) {
    for (let i = 0; i < data.length; i++) {
      if (data[i].text == obj.text) return i
    }
    return -1
  }

  let index = del({ text: "子目录一", id: 880 })
  if (index != -1) {
    data = data.slice(0, index + 1)
  }
  console.log(data);

image.png

const data = [
  { text: '根目录', id: 9521 },
  { text: '子目录一', id: 880 },
  { text: '子目录二', id: 196320 }
];

const newArr = demo(data, { text: "子目录一", id: 880 })
// => [{"text":"根目录","id":9521},{"text":"子目录一","id":880}]
console.log("newArr", JSON.stringify(newArr))

function demo (list, target) {
  const index = list.findIndex(function (item) {
    return item.text === target.text && item.id === target.id
  })
  return list.slice(0, index + 1)
}
function fn (data, divide) {
    return data.slice(0, data.findIndex(item => item.id === divide.id))
}
fn(data, { text: "根目录", id: 9521 })
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题