Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 替换对象数组中的键值_Javascript_Arrays_Splice - Fatal编程技术网

Javascript 替换对象数组中的键值

Javascript 替换对象数组中的键值,javascript,arrays,splice,Javascript,Arrays,Splice,我正在做一个项目,这是一个基本的消息应用程序。基本上,我已经创建了一个对象数组,允许我查看预构建的消息。然后,我应该能够单击“全部清除”按钮,并通过循环对象数组来清除正在显示的所有消息。这就是我目前在messageData.js中的内容 const messages = [ { id: 'message1', message: 'Hello everyone! Welcome to hell', userId: 'user1', }, { id: 'm

我正在做一个项目,这是一个基本的消息应用程序。基本上,我已经创建了一个对象数组,允许我查看预构建的消息。然后,我应该能够单击“全部清除”按钮,并通过循环对象数组来清除正在显示的所有消息。这就是我目前在messageData.js中的内容

const messages = [
  {
    id: 'message1',
    message: 'Hello everyone! Welcome to hell',
    userId: 'user1',
  },
  {
    id: 'message2',
    message: 'Yall are weirdos!',
    userId: 'user3',
  },
  {
    id: 'message3',
    message: 'Hey! I think everyone is awesome!',
    userId: 'user2',
  },
  {
    id: 'message4',
    message: 'Thanks for saying that my friend.',
    userId: 'user4',
  },
  {
    id: 'message5',
    message: 'Hey buddy, what is up?',
    userId: 'user4',
  },
];

const getMessages = () => messages;
我想做的基本上是单击允许将
消息
键值更改为空字符串
onclick
,这样我就可以在不删除对象的情况下删除显示的消息,以便以后可以
将新消息推送到这些键值中

我开始写这篇文章,但我似乎遗漏了一些东西

const clearBtnFunction = () => {
  messages.splice(1, '');
};
我将在main.js文件上调用事件侦听器,因此我还不太担心这一部分。如果可能的话,我只想知道替换数组中键值的正确语法

const clearBtnFunction = () => {
  messages.foreach( ( message ) => {
      message.message = "";
  });
};
或者使用for循环

const clearBtnFunction = () => {
  for( let i =0; i < messages.length; i++) {
      messages[i].message = "";
  }
};
constclearbtnfunction=()=>{
for(设i=0;i
以下是我选择的。我把这个函数放在messages.js中,而不是放在messages.js中,在这里我正在构建domstring

const clearBtnFunction = (e) => {
 e.preventDefault();
 const messages = message.getMessages();
 messages.splice(0, messages.length);
 messageBuilder(messages);
};

我不明白你想用
splice()
做什么。参数是
start、deleteCount、replacement1、replacement2、
。你似乎错过了开始或计数。您正在用字符串替换对象。您所说的“消息键值”是什么意思?您的意思是像
message1
message2
这样的ID?显示函数所需的结果。键值是什么?我没有看到任何名字叫key的东西。也许你想使用字典,使用
message1
message2
作为键,使用{message,userId}作为值对不起,我的术语还需要做一些工作。我想获取
message:
的值,并将其替换为空字符串不幸的是,eslint不允许我在此上使用foreach循环拼接整个阵列?为什么不创建一个新数组或使用myArray=[]清除该数组;您的对象不再在消息数组中。