当前位置: 首页 > 知识库问答 >
问题:

在javascript数组上使用find时如何检查未定义

姬昊焱
2023-03-14

在我使用的数组中。查找以查找对象并将其属性设置为某个值。我只想在有值的情况下设置名称。即;检查以下未定义的是我的数组,我正在使用。查找以查找对象并设置其名称。我只想在找到id==checkid的对象时进行设置。

 this.myarray.find(colDef => colDef.id === checkid).name = newname;.

共有3个答案

冉德元
2023-03-14

这里有两种方法。

如果你不在乎,用火忘记风格。

如果你真的想知道,更详细的检查。

const arr = [{id:1}];

const fireAndForget = (arr, id, newName) => (arr.find(i => i.id === id)||{}).name = newName;

const checkAndNotify = (arr, id, newName) => {
  const p = arr.find(i => i.id === id);
  if(!p) return false;
  p.name = newName;
  return true;
};

console.log(checkAndNotify(arr, 2, 'test'));
console.log(checkAndNotify(arr, 1, 'test'));
console.log(arr);

console.log(fireAndForget(arr, 2, 'test2'));
console.log(fireAndForget(arr, 1, 'test2'));
console.log(arr);
马凡
2023-03-14

您需要运行search作为它自己的语句,并检查结果是否被定义。如果是,请指定名称,否则不要:

let myarray = [
    {id: 100},
    {id: 10},
    {id: 5}
]

let found = myarray.find(colDef => colDef.id === 10)

if (found !== undefined){
    found.name = "some name"
} 
console.log(found)

// no id 11 found will be undefined
found = myarray.find(colDef => colDef.id === 11)
console.log(found)
孙承弼
2023-03-14

您可以在一条语句中使用Object来实现这一点。分配如下:

let myArray = [{id: 1, name: 'Boris'}, {id: 2}]

// id 3 does not exist no changes would be made to myArray
Object.assign(myArray.find(x => x.id == 3) || {}, {name: 'Foo'})

// id 1 is there so name would be changed to 'john'
Object.assign(myArray.find(x => x.id == 1) || {}, {name: 'john'})

console.log(myArray)
 类似资料:
  • 问题内容: 测试JavaScript中是否未定义变量的最合适方法是什么?我已经看到了几种可能的方法: 要么 要么 问题答案: 如果您想知道变量是否已声明而无论其值如何,那么使用运算符是最安全的方法。考虑以下示例: 但这在某些情况下可能不是预期的结果,因为已声明但未初始化变量或属性。使用运算符进行更强大的检查。 如果您想知道变量是否尚未声明或具有值,请使用运算符,该运算符可确保返回字符串: 直接比较

  • 问题内容: 我想检查变量是否已定义。例如,以下引发未定义的错误 如何捕获此错误? 问题答案: 在JavaScript中,是一个对象。不存在的事物还有另一个价值,。DOM 在几乎所有无法在文档中找到某些结构的情况下都会返回,但是在JavaScript本身中是所使用的值。 第二,不,没有直接对等的内容。如果您确实要专门检查,请执行以下操作: 如果要检查变量是否存在,那只能用/ 来完成,因为它将未声明的

  • 本文向大家介绍如何在JavaScript中检查未定义的变量?,包括了如何在JavaScript中检查未定义的变量?的使用技巧和注意事项,需要的朋友参考一下 要检查变量是否为“未定义”,您需要使用以下命令进行检查。如果结果为“ false”,则表示未定义变量。在这里,变量结果为“ True”- 示例

  • 问题内容: 我们经常在JavaScript代码中使用以下代码模式 有没有更冗长的检查方法具有相同的效果? 根据一些论坛和文献的说法,简单地讲,以下内容应具有相同的效果。 不幸的是,当未定义时,Firebug会将这样的语句评估为运行时错误,而第一个语句就可以了。这仅仅是Firebug的一种(有害的)行为,还是这两种方式之间确实存在某些区别? 问题答案: 您必须区分两种情况: 变量可以是或未 声明的

  • 本文向大家介绍如何检查数组在JavaScript中是否为真数组?,包括了如何检查数组在JavaScript中是否为真数组?的使用技巧和注意事项,需要的朋友参考一下 在javascript中,数组不是true数组。它们是javascript对象。因此,当我们尝试使用typeof()运算符了解其类型时,显示的输出将为object。 语法 参数 -的typeof()运算符采用一个操作数并返回操作数的数据

  • 问题内容: 我看到了这个问题,但是没有看到JavaScript特定的示例。JavaScript中是否有一个简单的可用工具,还是仅用于检查的情况? 问题答案: 如果您只想检查是否有任何价值,可以 如果您需要专门为在空空字符串检查,我想核对是你最好的选择,使用的运营商(让你知道这是,事实上,一个字符串你比较反对)。