javascript - 如何创建字符串数组,每个字符串都用单引号括起来(javascript)

标签 javascript angularjs angularjs-orderby

我有一个对象,我正在迭代它的键并将其所有键插入一个数组中,我需要用单引号将每个字符串括起来,例如,如果我有一个对象 {"name": true, "Updated Date": false} 我想创建字符串数组作为 ['"name"', '"Updated Date"'], 需要这种格式的原因是使 Angular orderBy 过滤器与多个谓词,每个谓词之间有空格,例如更新日期

我尝试过以下代码

var myObj = {"name": true, "Updated Date": false}

var myPredicates = [];

for(var prop in myObj) {
    myPredicates.push("'" + prop + "'");
}

console.log(myPredicates);

这样做的结果将是 ["'name'", "'Updated Date'"] 但我想要实现的是 ['"name"', '"Updated日期"']

这是一个plunker我正在尝试从 filterObject

制作 predicate

最佳答案

你在这里问的问题——其他答案已经从表面上看出来并给出了合理的答案——是不是你想问的问题,基于你的实际AngularJS代码plunkr。最重要的是,您对 JavaScript 有一些误解,这会导致您进一步困惑:

  1. 双引号内是否有单引号或 单引号内的双引号并不重要
  2. 当您在浏览器中将字符串打印到控制台时,它始终使用 double 引号(尝试只输入 'abc' return"abc" 直接在控制台中返回即可看到此内容)。

至于你的实际问题:而不是这个......

predicate=['"+name"','"-Updated Date"']

AngularJS 需要的是这个...

predicate=['+"name"','-"Updated Date"']

请注意,加号和减号的位置已更改。 (您可能知道,name 周围实际上不需要引号,因为它没有嵌入空格,但像您的代码一样,将它们放在那里也没有坏处。)

因此,你的 plunkr 代码,而不是这个:

predicate.push("'-" + key + "'");

应该使用:

predicate.push("-'" + key + "'");

关于javascript - 如何创建字符串数组,每个字符串都用单引号括起来(javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41658766/

相关文章:

javascript - 仅使用单个服务器托管由 Node 编写的多个应用程序

php - 通过javascript游戏访问sql数据库

javascript - window.onload 在 body onload 工作时不工作

javascript promise 失败了

json - 使用 AngularJS 解析带有数组的 JSON 文件

javascript - 错误 : [orderBy:notarray] Expected array but received: {}

javascript - 单击时按 Angular 图标更改顺序

javascript - 在 Delphi TWebBrowser 中静音 YouTube 声音

javascript - 对如何在选择标签中使用以下数据感到困惑(Angular)

javascript - AngularJS orderBy 不是数字