相关疑难解决方法(0)

将对象的属性和值转换为键值对的数组

我是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 reflection introspection

21
推荐指数
2
解决办法
6万
查看次数

合并两个javascript对象,添加公共属性的值

我有两个或更多的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)

javascript jquery json

9
推荐指数
1
解决办法
3555
查看次数

如何使用lodash获取对象的前n个元素?

我想使用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?

javascript underscore.js lodash

8
推荐指数
1
解决办法
2万
查看次数

Object.keys()和Object.values()方法返回保留相同顺序的数组

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)

javascript

7
推荐指数
1
解决办法
1046
查看次数

为什么在标准化状态形状中需要所有"ID"的数组?

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)

normalizr

7
推荐指数
1
解决办法
993
查看次数

Quasar 表列过滤

1)有没有办法实现类似于数据表的类星体表列过滤? https://datatables.net/extensions/fixedheader/examples/options/columnFiltering.html

理想情况下,它将是一个自动填充文本字段,它将过滤表中的所有行。我有一个有 25 列的表,所以想要一些健壮的东西。

2)对数据过滤后端部分有什么建议吗?我应该使用过滤器调用数据库还是在客户端和过滤器客户端存储主列表?

javascript vue.js vue-component quasar-framework

5
推荐指数
1
解决办法
4478
查看次数

JS:编写一个函数,遍历字符串列表并返回列表中出现频率最高的前 10 个字符串

我正在尝试编写一个函数,它遍历字符串列表并返回列表中前 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)

javascript algorithm

5
推荐指数
1
解决办法
606
查看次数

何时在 ES6 中使用 Object map 与 Map 类

假设我想创建一个字典,例如,汽车品牌到一个或多个模型。

似乎我可以在 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)

上述两种方法之间的主要区别和优缺点是什么?

javascript ecmascript-6

4
推荐指数
1
解决办法
4750
查看次数

Vue 组件的结构应该是什么?应该按什么顺序添加功能?

Vue 组件有系统的结构吗?应该以什么顺序编写计算、方法、组件、安装的手表等?

vue.js vue-component vuejs2

4
推荐指数
1
解决办法
1530
查看次数

如何保持对象中项目的顺序

它从后端获取具有非常特定键的对象。我必须更改一些值 \xe2\x80\x8b\xe2\x80\x8b 但仅限于我应该中断的属性。但是,我必须保持顺序。\n下面的代码可以工作,但我的项目中有问题 - 不同的浏览器?不知道。“For of”从键“14D”开始。我如何确定,如何维持秩序?由于特定的键,我无法对其进行排序。

\n

\r\n
\r\n
let 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\n
\r\n
\r\n

\n

https://codepen.io/Whity/pen/KKNvKQq

\n

javascript

4
推荐指数
1
解决办法
4399
查看次数