当前位置: 首页 > 面试题库 >

如何使用JavaScript或jQuery更改数组内部对象的值?

宗政永望
2023-03-14
问题内容

下面的代码来自jQuery UI Autocomplete:

var projects = [
    {
        value: "jquery",
        label: "jQuery",
        desc: "the write less, do more, JavaScript library",
        icon: "jquery_32x32.png"
    },
    {
        value: "jquery-ui",
        label: "jQuery UI",
        desc: "the official user interface library for jQuery",
        icon: "jqueryui_32x32.png"
    },
    {
        value: "sizzlejs",
        label: "Sizzle JS",
        desc: "a pure-JavaScript CSS selector engine",
        icon: "sizzlejs_32x32.png"
    }
];

例如,我想更改 jquery-uidesc值 。我怎样才能做到这一点?

此外,是否有更快的方法来获取数据?我的意思是给对象命名以获取其数据,就像数组中的对象一样?所以这就像jquery-ui.jquery-ui.desc = ....


问题答案:

您必须像这样在数组中搜索:

function changeDesc( value, desc ) {
   for (var i in projects) {
     if (projects[i].value == value) {
        projects[i].desc = desc;
        break; //Stop this loop, we found it!
     }
   }
}

并像这样使用

var projects = [ ... ];
changeDesc ( 'jquery-ui', 'new description' );

更新:

为了更快地获得它:

var projects = {
   jqueryUi : {
      value:  'lol1',
      desc:   'lol2'
   }
};

projects.jqueryUi.desc = 'new string';

(根据Frédéric的评论,您不应在对象键中使用连字符,否则应使用“ jquery-ui”和projects [“ jquery-ui”]表示法。)



 类似资料:
  • 问题内容: 我有一个对象数组: 如何获得按属性名称升序排列的数组? 我尝试这样做:,但这不起作用。 请帮我! 编辑:数组可以包含两个以上的对象!它可以包含数百个。 编辑: 为什么在“重复的”问题问了两年之前,这个问题为什么被标记为重复? 问题答案:

  • 问题内容: 我想在Zepto或Jquery中用$ .ajax发布一个对象数组。两者都表现出相同的奇数错误,但我找不到我做错的事情。 使用“ RestEasy”之类的测试客户端发送数据时,数据会保存到服务器,并且我可以在浏览器的网络面板中看到请求被篡改,因此我相信JS是罪魁祸首。 如果我将对象数组作为POST的data属性发送,则不能正确发送它们。 数据对象: 请求: 在浏览器中看到的请求正文: 可

  • 问题内容: 鉴于此输入: 我正在尝试使用jq构造一个过滤器,该过滤器返回s的所有对象,这些s 的内部数组中 不 包含“数据” ,并且输出以换行符分隔。对于以上数据,我想要的输出是 我想我与此有点接近: 但过滤器不正确,并且无法编译(获取)。 问题答案: 很接近!在表达式中,您必须在之前使用管道()。 该滤波器产生预期的输出。 的JQ食谱具有语法的一个例子。 例如,我只想要类型键包含“ house”

  • 问题内容: 我有一个 我已经返回并命名的。一些值是空的,我需要将值添加到某些键中并将其发送回我的脚本。 我通过data.keyName访问现有值。如何添加或更改“数据”中某些键的值? 这是什么样子。 问题答案: 解码JSON后,结果就是一个JavaScript对象。只需像对待其他任何对象一样对其进行操作即可。例如:

  • 问题: 我使用 pinia 进行状态管理,写法大概如下,由于我修改的是数组中某个对象下的对象的属性,数组更新后,页面无法重新渲染。 当我点击按钮修改元素的 x,y,width,height 某个样式值的时候,layerList 中对应的元素的下的style对象的下属性值也会更新,由于页面是根据这个对象来渲染内联样式的, style 在手动更新后一直无法更新,想请教下各位大佬这是什么原因? 数组 l

  • 问题内容: 我目前正在尝试使用Firestore,但遇到了非常简单的问题:“更新数组(又称子文档)”。 我的数据库结构非常简单。例如: 我正在尝试(没有成功)将新记录推入对象数组。 我试过了: 没有效果。这些查询将覆盖我的数组。 答案可能很简单,但我找不到它… 问题答案: 当前无法在Cloud Firestore中更新单个数组元素(或添加/删除单个元素)。 这段代码在这里: 这是说,在设置文件,使