javascript - 根据 jquery 中另一个数组的条件迭代对象列表

标签 javascript jquery

我下面有一个对象列表

newlist 也是动态的,SelectID 数组也是动态的

我正在通过一个函数填充,现在我必须迭代并创建新列表

  var newList = 
    [
    {  id : 1,name="tea",plant:"darjeeling"},
    {  id : 2,name="coffee",plant:"manipur"},
    {  id : 3,name="milk",plant:"nilgiri"},
    {  id : 4,name="tea",plant:"assam"}
    ]

另一个具有共同 ID 的数组

var selectedID = [2,3];

现在我必须迭代对象列表并将对象列表更新为 ID 为 2 和 3 的植物应为“munnar”

如何创建新的对象列表“newlist”,如下所示

var newList = 
[
{  id : 1,name="tea",plant:"darjeeling"},
{  id : 2,name="coffee",plant:"munnar"},
{  id : 3,name="milk",plant:"munnar"},
{  id : 4,name="tea",plant:"assam"}
]

最佳答案

我假设您是在 javascript 中执行此操作,所以首先我想指出您应该像这样定义 newList

 var newList = 
    [
    {  id : 1,name:"tea",plant:"darjeeling"},
    {  id : 2,name:"coffee",plant:"manipur"},
    {  id : 3,name:"milk",plant:"nilgiri"},
    {  id : 4,name:"tea",plant:"assam"}
    ]

name="tea"不起作用。

但是针对您的问题,您需要使用 selectedID 数组值来更新现有的 newList,如下所示。

 var newList = 
    [
    {  id : 1,name:"tea",plant:"darjeeling"},
    {  id : 2,name:"coffee",plant:"manipur"},
    {  id : 3,name:"milk",plant:"nilgiri"},
    {  id : 4,name:"tea",plant:"assam"}
    ]

 var selectedID =[2,3]

for(i=0;i<newList.length;i++){
   for(j=0;j < selectedID.length;j++){
      if(newList[i].id==selectedID[j])
         newList[i].plant = "munnar";
   }
}

console.log(newList);

关于javascript - 根据 jquery 中另一个数组的条件迭代对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43589884/

相关文章:

javascript - 在 ASP.NET MVC3 中使用 JavaScriptSerializer 转义引号

javascript - 仅在关闭选项卡/窗口时触发页面卸载事件

javascript - 关于 JQuery 插件,您有任何安全问题吗?

javascript - 如何根据背景图像的高度和宽度设置DIV尺寸

javascript - "recursive"回调会导致堆栈溢出吗?

javascript - 在Javascript中通过ID获取元素的效率如何?

javascript window.location iframe,使父窗口转到位置

javascript - 更改 WooCommerce 中某些产品的 "Sold out"

java - 将 Javascript 数组转换为 Java 数组

javascript - 如何停止我的页脚 div 超过页面宽度?