Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.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 - Fatal编程技术网

Javascript 替代过滤器

Javascript 替代过滤器,javascript,Javascript,我正在映射是否已找到状态。该功能似乎工作正常,但是否有较短的方法或替代方法 例如: data = { Items: [ {Id: 434, Status: "Processing"}, {Id: 223, Status: "Completed"} ] } mapperData = { Id: 223, Name: "Hello World", Status: data.Items.filter(function(item) { if (item

我正在映射是否已找到状态。该功能似乎工作正常,但是否有较短的方法或替代方法

例如:

data = {
  Items: [
    {Id: 434, Status: "Processing"},
    {Id: 223, Status: "Completed"}
  ]
}

mapperData = {
  Id: 223, 
  Name: "Hello World",
  Status: data.Items.filter(function(item) {
      if (item.Id == 223) {
        return item.Status
      }
  })[0].Status,
}

console.log(mapperData)
返回:

{Id:223,姓名:“你好,世界”,状态:“已完成”}

演示:

而不是
[0]
,使用:

例如:

使用ES2015+箭头功能更好:

mapperData = {
  Id: 223, 
  Name: "Hello World",
  Status: data.Items.find(item => item.Id == 223).Status,
}
find
是在ES2015中添加的,但是对于像IE11这样的过时环境,可以很容易地进行多填充。

而不是使用
[0]
,使用:

例如:

使用ES2015+箭头功能更好:

mapperData = {
  Id: 223, 
  Name: "Hello World",
  Status: data.Items.find(item => item.Id == 223).Status,
}

find
是在ES2015中添加的,但是对于像IE11这样的过时环境,可以很容易地进行多填充。

您可以选择在
数组上使用
forEach
循环,并设置您的
id
以在变量中进行比较:

var数据={
项目:[
{Id:434,状态:“正在处理”},
{Id:223,状态:“已完成”}
]
}
var res={};
var-id=223;
data.Items.forEach((item)=>{
res.Id=Id;
res.Name=“你好,世界”;
如果(item.Id==Id){
资源状态=项目状态
}
});

console.log(res)
您可以选择在
数组上使用
forEach
循环,并将
id设置为在变量中进行比较:

var数据={
项目:[
{Id:434,状态:“正在处理”},
{Id:223,状态:“已完成”}
]
}
var res={};
var-id=223;
data.Items.forEach((item)=>{
res.Id=Id;
res.Name=“你好,世界”;
如果(item.Id==Id){
资源状态=项目状态
}
});

console.log(res)
Crowder,添加一个未定义的检查是否明智?@callback:问题中没有,因此我假设没有必要这样做——例如,作者知道数组将包含一个具有
Id
的项。此外,您几乎总是希望使用
==
操作符而不是
=
@BoltKey:No,这几乎不重要。在绝大多数情况下,这是风格问题,而不是实质问题。我复制了OP的样式。Crowder,添加一个未定义的检查是否明智?@callback:问题中没有,因此我假设没有必要这样做——例如,作者知道数组将包含一个具有
Id
的项。此外,您几乎总是希望使用
===
运算符,而不是
=
@BoltKey:No,这几乎不重要。在绝大多数情况下,这是风格问题,而不是实质问题。我复制了OP的风格。为了便于将来参考,您可以使用现场堆栈片段(即
[]
工具栏按钮;)而不是场外小提琴,让人们更容易帮助您(并帮助您避免遗漏重要细节)。为了将来参考,您可以使用场外小提琴,通过使用现场堆栈片段(
[]
工具栏按钮;),您可以让人们更容易地帮助您(并帮助自己避免遗漏重要的细节)。
mapperData = {
  Id: 223, 
  Name: "Hello World",
  Status: data.Items.find(item => item.Id == 223).Status,
}