【问题标题】:update array of objects based on inputs [closed]根据输入更新对象数组
【发布时间】:2025-11-24 04:30:01
【问题描述】:

我在前端有一个对象数组。这是它的内容。

0: Object
 Name: Ria
 Age: 27
 Sex: Female

1: Object
 Name: Brian
 Age: 23
 Sex: Male

2: Object
 Name: Rick
 Age: 32
 Sex: Male

我将其更新为表格。我正在尝试在这里添加 2 个功能。

如果用户点击“添加按钮”,它应该创建一个带有空参数的新对象。像这样的东西。

0: Object
 Name: 
 Age: 
 Sex: 

1: Object
 Name: Ria
 Age: 27
 Sex: Female

2: Object
 Name: Brian
 Age: 23
 Sex: Male

3: Object
 Name: Rick
 Age: 32
 Sex: Male

同样,如果用户单击删除按钮,我将传递用户想要删除的选定值。假设他们是

Brian,Rick

我们会知道,由于这些名称,需要删除对象 1 和 2。所以新的对象数组应该是这样的。

 0: Object
 Name: Ria
 Age: 27
 Sex: Female

对象 1 和 2 不会在那里,因为传递的参数表明它们需要从列表中删除。我希望这是动态的。根据传递的参数,应该更新对象数组。

【问题讨论】:

  • 你有没有尝试过?有什么问题?你能发布一个代码示例吗?

标签: javascript jquery html arrays object


【解决方案1】:

要在数组的开头插入,请使用unshift

array.unshift({
    Name: null,
    Age: null,
    Sex: null
});

删除你可以使用filter

function remove(names) {
    array = array.filter(function(obj) {
        return names.indexOf(obj.Name) == -1;
    });
}
remove(['Brian', 'Rick']);

或者如果你想传递字符串使用:

function remove(names) {
    names = names.split(',');
    array = array.filter(function(obj) {
        return names.indexOf(obj.Name) == -1;
    });
}
remove('Brian,Rick');

【讨论】:

  • @jcubic- 所以 uunshift 会将所有对象移动 1 个位置并在第 0 个元素处插入新的空值行?
  • @Neeva 是的,它会在 0 索引处插入您传递给它的任何内容。
  • @jubic- 太酷了。谢谢你的回答。
  • @Neeva 不要忘记标记解决您问题的答案。