我有一个对象,我正在迭代它的键并将其所有键插入一个数组中,我需要用单引号将每个字符串括起来,例如,如果我有一个对象 {"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 有一些误解,这会导致您进一步困惑:
- 双引号内是否有单引号或 单引号内的双引号并不重要。
- 当您在浏览器中将字符串打印到控制台时,它始终使用 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/