我是JavaScript的新手,我不确定这是可行的,但基本上我想取一个对象并将其转换为格式的字符串数组; array[0] = 'prop1=value1'
这背后的原因是我让用户在表单中输入k = v对的列表,之后它被写为json blob中的对象.从键值csl到json对象很简单,现在我需要回到另一个方向(我通过ajax调用收到了JSON并希望填充一个空白表单).这在JavaScript中可行吗?如果没有,请提供合理的工作.
示例代码;
调试器中的对象;
Object
private_key: "private-key"
public_key: "public-key"
Run Code Online (Sandbox Code Playgroud)
我需要将其转换为;
"private_key=private-key,public_key=public-key"
Run Code Online (Sandbox Code Playgroud)
基本上我需要这样的东西(伪代码)
var outputString = '';
foreach (prop in obj)
{
outputString = outputString + prop.tostring() + '=' + prop.value + ',';
}
Run Code Online (Sandbox Code Playgroud) 我有两个或更多的JavaScript对象.我想合并它们添加公共属性的值,然后按值的降序对它们进行排序.
例如
var a = {en : 5,fr: 3,in: 9}
var b = {en: 8,fr: 21,br: 8}
var c = merge(a,b)
Run Code Online (Sandbox Code Playgroud)
c 应该是这样的:
c = {
fr: 24,
en: 13,
in:9,
br:8
}
Run Code Online (Sandbox Code Playgroud)
即,两个对象都是合并的,添加了公共密钥的值,然后对密钥进行了排序.
这是我尝试过的:
var a = {en : 5,fr: 3,in: 9}
var b = {en: 8,fr: 21,br: 8}
c = {}
// copy common values and all values of a to c
for(var k in a){
if(typeof b[k] != 'undefined'){
c[k] = a[k] + b[k]
}
else{ c[k] …Run Code Online (Sandbox Code Playgroud) 我想使用lodash 从对象(而不是数组)中获取前n个键/值对.我发现这个答案下划线,这表示使用使用第一(在lodash不存在),或者使用取(仅适用于数组).
尝试从对象获取'a:7'和'b:8'对的示例节点会话:
> var ld=require("lodash")
undefined
> var o={a:7, b:8, c:9}
undefined
> ld.keys(o)
[ 'a', 'b', 'c' ]
> ld.take(o, 2)
[]
> ld.first(o, 2)
undefined
>
Run Code Online (Sandbox Code Playgroud)
当然,使用lodash必须有一些简单的方法来做到这一点,但对于我的生活,我找不到任何东西.也许我不得不诉诸本地的js?
做Object.keys()和Object.values()方法返回保持相同的顺序排列?
我的意思是,假设我们有以下对象:
var obj = {};
obj.prop1 = "Foo";
obj.prop2 = "Bar";
Run Code Online (Sandbox Code Playgroud)
如果我打电话obj.keys(),obj.values()他们会返回相同订单的房产吗?
prop1
prop2
Foo
Bar
Run Code Online (Sandbox Code Playgroud)
要么
prop2
prop1
Bar
Foo
Run Code Online (Sandbox Code Playgroud)
对?
所以以下选项是不可能的,对吧?
prop1
prop2
Bar
Foo
Run Code Online (Sandbox Code Playgroud) comments : {
byId : {
"comment1" : {
id : "comment1",
author : "user2",
comment : ".....",
},
"comment2" : {
id : "comment2",
author : "user3",
comment : ".....",
},
"comment3" : {
id : "comment3",
author : "user3",
comment : ".....",
},
"comment4" : {
id : "comment4",
author : "user1",
comment : ".....",
},
"comment5" : {
id : "comment5",
author : "user3",
comment : ".....",
},
},
allIds : ["comment1", "comment2", "comment3", "commment4", "comment5"]
} …Run Code Online (Sandbox Code Playgroud) 1)有没有办法实现类似于数据表的类星体表列过滤? https://datatables.net/extensions/fixedheader/examples/options/columnFiltering.html
理想情况下,它将是一个自动填充文本字段,它将过滤表中的所有行。我有一个有 25 列的表,所以想要一些健壮的东西。
2)对数据过滤后端部分有什么建议吗?我应该使用过滤器调用数据库还是在客户端和过滤器客户端存储主列表?
我正在尝试编写一个函数,它遍历字符串列表并返回列表中前 10 个最常用的字符串。我正在尝试为这个问题提出多种解决方案
这是我的第一个解决方案
const list = [
"this",
"is",
"a",
"test",
"which",
"word",
"wins",
"top",
"i",
"don't",
"know",
"off",
"hand",
"do",
"you",
"this",
"a",
"a",
"this",
"test",
"a",
"a",
"do",
"hand",
"hand",
"a",
"whatever",
"what",
"do",
"do"
];
function fn1(strArr) {
const map = new Map()
for(const str of strArr) {
if(map.has(str)) {
map.set(str, map.get(str) + 1)
} else {
map.set(str, 1)
}
}
const sortedMap =[...map.entries()].sort(([_,a], [__,b]) => a < b ? 1 : -1)
return sortedMap.slice(0 , …Run Code Online (Sandbox Code Playgroud) 假设我想创建一个字典,例如,汽车品牌到一个或多个模型。
似乎我可以在 ES6 中以两种不同的方式做到这一点。
1. 创建一个对象映射:
代码:
const makesAndModels = {
"mazda": [
{ name: "Miata" },
{ name: "626" }
],
"toyota": [
{ name: "Camry" }
],
...
};
Run Code Online (Sandbox Code Playgroud)
2. 创建一个 ES6 Map 实例:
代码:
const makes = {
mazda: { name: "Mazda" },
toyota: { name: "Toyota" }
};
const makesAndModels = new Map([
[makes.mazda, [
{ name: "Miata" },
{ name: "626" }
]],
[makes.toyota, [
{ name: "Camry" }
]],
...
]);
Run Code Online (Sandbox Code Playgroud)
上述两种方法之间的主要区别和优缺点是什么?
Vue 组件有系统的结构吗?应该以什么顺序编写计算、方法、组件、安装的手表等?
它从后端获取具有非常特定键的对象。我必须更改一些值 \xe2\x80\x8b\xe2\x80\x8b 但仅限于我应该中断的属性。但是,我必须保持顺序。\n下面的代码可以工作,但我的项目中有问题 - 不同的浏览器?不知道。“For of”从键“14D”开始。我如何确定,如何维持秩序?由于特定的键,我无法对其进行排序。
\nlet updatedData = {};\nconst dataFromBd = {\n \'1M\': {\n name: \'anna\'\n },\n \'1Y\': {},\n \'2Y\': {},\n \'3M\': {},\n \'3Y\': {},\n \'4Y\': {},\n \'5Y\': {},\n \'6M\': {},\n \'7Y\': {},\n \'10Y\': {},\n \'14D\': {},\n \'15Y\': {},\n \'>20Y\': {}\n};\n\nfor (let [key, value] of Object.entries(dataFromBd)) {\n updatedData[key] = \'hello\';\n if (key === \'10Y\') break;\n}\n\nconsole.log(\'data\', updatedData);Run Code Online (Sandbox Code Playgroud)\r\njavascript ×8
vue.js ×2
algorithm ×1
ecmascript-6 ×1
jquery ×1
json ×1
lodash ×1
normalizr ×1
reflection ×1
vuejs2 ×1