检查数组是否具有相同的值
checking array if has same value
通过编码学习,这里我有一个对象数组(数据)和 nodeId,它是数字,我想检查数组 'target' 是否与 nodeId 具有相同的值然后 'return',我应该使用 map()、find()、filter(),我怎么知道该使用哪个?
英语不是我的母语所以可能会出错
数据:
const Test = '7'
const nodeId = parseInt(Test);
const data = [
{ target: 4, name: "usa" },
{ target: 7, name: "England" },
{ target: 3, name: "Japan" }
];
if (check if data and nodeId both have same value then) {
return;
}
.some()
大概就是你要用的
const check = data.some((elem) => elem.target === nodeId)
console.log(check) // true if exist or false if it doesnt
if(check) {
// reached if it exist
}
check 如果不存在则为 false
,如果存在则为 true
。一旦找到匹配项,它将停止 运行,而 .filter()
and .map()
would run the entire array. If you also want to get the element then you should use .find()
相反。
你的问题有点含糊,但我会尽量简单地回答。
should i use map(), find(), filter(), how should i know which to use ?
这取决于您假设的函数或代码需要什么,例如,如果您想要与您的值相匹配的项目,那么您将使用 .find()
,因为它 return 的单个值基于一个条件。
类似地,如果您希望 return 一个基于符合条件的项目的数组,您可以使用 .filter()
,如果您只是想检查您的值是否存在于数组中,则相同,你可以使用 .some
或 .every
.
在你的代码示例中,我假设你想要 return 与你的 nodeId 匹配的特定值,根据这个假设,这是如何工作的
function getDataBasedOnNodeId (dataObjects, matchValue) {
return dataObjects.find(item => item.target === Number(matchValue))
}
const data = [
{ target: 4, name: "usa" },
{ target: 7, name: "England" },
{ target: 3, name: "Japan" }
];
return getDataBasedOnNodeId(data, 7)
通过编码学习,这里我有一个对象数组(数据)和 nodeId,它是数字,我想检查数组 'target' 是否与 nodeId 具有相同的值然后 'return',我应该使用 map()、find()、filter(),我怎么知道该使用哪个? 英语不是我的母语所以可能会出错
数据:
const Test = '7'
const nodeId = parseInt(Test);
const data = [
{ target: 4, name: "usa" },
{ target: 7, name: "England" },
{ target: 3, name: "Japan" }
];
if (check if data and nodeId both have same value then) {
return;
}
.some()
大概就是你要用的
const check = data.some((elem) => elem.target === nodeId)
console.log(check) // true if exist or false if it doesnt
if(check) {
// reached if it exist
}
check 如果不存在则为 false
,如果存在则为 true
。一旦找到匹配项,它将停止 运行,而 .filter()
and .map()
would run the entire array. If you also want to get the element then you should use .find()
相反。
你的问题有点含糊,但我会尽量简单地回答。
should i use map(), find(), filter(), how should i know which to use ?
这取决于您假设的函数或代码需要什么,例如,如果您想要与您的值相匹配的项目,那么您将使用 .find()
,因为它 return 的单个值基于一个条件。
类似地,如果您希望 return 一个基于符合条件的项目的数组,您可以使用 .filter()
,如果您只是想检查您的值是否存在于数组中,则相同,你可以使用 .some
或 .every
.
在你的代码示例中,我假设你想要 return 与你的 nodeId 匹配的特定值,根据这个假设,这是如何工作的
function getDataBasedOnNodeId (dataObjects, matchValue) {
return dataObjects.find(item => item.target === Number(matchValue))
}
const data = [
{ target: 4, name: "usa" },
{ target: 7, name: "England" },
{ target: 3, name: "Japan" }
];
return getDataBasedOnNodeId(data, 7)