相关疑难解决方法(0)

在JavaScript中比较字符串的最佳方法?

我正在尝试优化一个在JavaScript中对字符串进行二进制搜索的函数.

二进制搜索要求您知道密钥是==枢轴还是<枢轴.

但这需要在JavaScript中进行两次字符串比较,这与C具有strcmp()返回三个值(-1, 0, +1)(小于,等于,大于)的函数的类似语言不同.

JavaScript中是否存在这样的本机函数,它可以返回三元值,以便在二进制搜索的每次迭代中只需要进行一次比较?

javascript string optimization comparison binary-search

378
推荐指数
3
解决办法
68万
查看次数

在javascript中排序json对象

例如,有这个代码:

var json = {
    "user1" : {
        "id" : 3
    },
    "user2" : {
        "id" : 6
    },
    "user3" : {
        "id" : 1
    }
}
Run Code Online (Sandbox Code Playgroud)

我怎么能把这个json排成这样 -

var json = {
    "user3" : {
        "id" : 1
    },
    "user1" : {
        "id" : 3
    },
    "user2" : {
        "id" : 6
    }
}
Run Code Online (Sandbox Code Playgroud)

我用ID对用户进行了排序..
我不知道如何在javascript中执行此操作..

javascript sorting json

31
推荐指数
2
解决办法
9万
查看次数

在JavaScript中按值对字典排序

这是我的字典:

const dict = {
  "x" : 1,
  "y" : 6,
  "z" : 9,
  "a" : 5,
  "b" : 7,
  "c" : 11,
  "d" : 17,
  "t" : 3
};
Run Code Online (Sandbox Code Playgroud)

我需要一种方法来将dict字典从最小到最大,或从最大到最小.或者甚至没问题我有一个带有排序键的数组.但我不知道如何使用这样的东西javascript.在使用之前我已经完成了python,像这样:

import heapq
from operator import itemgetter

thirty_largest = heapq.nlargest(8, dict.iteritems(), key=itemgetter(1))
Run Code Online (Sandbox Code Playgroud)

我在谷歌搜索过它,我发现数组有sort()功能但没有字典.所以我的问题是:我如何对字典进行排序按排序顺序获得前5大值?

javascript sorting dictionary object

24
推荐指数
4
解决办法
4万
查看次数

排序对象数组时出错无法分配给对象'[object Array]'的只读属性'2'

我有对象的数组,其中对象看起来像这样(值更改):

   {
     stats: {
        hp: 2,
        mp: 0,
        defence: 4,
        agility: 11,
        speed: 6,
        strength: 31
     }
   }
Run Code Online (Sandbox Code Playgroud)

我想通过速度降序对它们进行排序:

  array.sort((a, b) => {
            return b.stats.speed - a.stats.speed
        })
Run Code Online (Sandbox Code Playgroud)

但是我收到了这个错误,我无法解释最新情况:

TypeError:无法分配给对象'[object Array]'的只读属性'2'

我错过了什么?

编辑:redux存储中的对象数组:

const enemyDefaultState = [
{
    name: 'European Boy1',
    stats: {
        hp: 2,
        mp: 0,
        defence: 4,
        agility: 11,
        speed: 6,
        strength: 31
    }
},
{
    name: 'European Boy2',
    stats: {
        hp: 2,
        mp: 0,
        defence: 4,
        agility: 4,
        speed: 2,
        strength: 31
    }
},
{
    name: 'European …
Run Code Online (Sandbox Code Playgroud)

javascript sorting

13
推荐指数
4
解决办法
6442
查看次数

Chrome和可能的Opera自动排序对象属性

问题是:Chrome会自动对对象的属性进行排序.

如果我有一个像这样的对象:

var obj = {4: "first", 2: "second", 1: "third"};
Run Code Online (Sandbox Code Playgroud)

然后我下次做的时候:

for(var i in obj) {
    console.debug(obj[i]);
}
Run Code Online (Sandbox Code Playgroud)

我明白了:

third second first

但期望:

first second third

javascript

12
推荐指数
2
解决办法
2969
查看次数

如何按值对(关联)数组进行排序?

可能重复:
如何按Javascript中的值对关联数组进行排序?

首先,我知道技术上Javascript没有关联数组,但我不知道如何标题并获得正确的想法.

所以这是我的代码,

var status = new Array();
status['BOB'] = 10
status['TOM'] = 3
status['ROB'] = 22
status['JON'] = 7
Run Code Online (Sandbox Code Playgroud)

而且我想按值对它进行排序,这样当我稍后循环它时,ROB首先是,然后BOB等等.

我试过了,

status.sort()
status.sort(function(a, b){return a[1] - b[1];});
Run Code Online (Sandbox Code Playgroud)

但他们似乎都没有做任何事情.

在阵列之前和之后将阵列打印到控制台导致它以相同的顺序出现.

javascript

10
推荐指数
1
解决办法
3万
查看次数

合并两个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
查看次数

如何通过嵌套值对JSON对象进行排序?

我有一个ajax调用,返回一个相当复杂的JSON对象,我很难对它进行排序.

我的电话:

$.post('/reports-ajax',arguments, function(data) {}
Run Code Online (Sandbox Code Playgroud)

响应:

{
"10001":{
    "unitname":"Fort Worth",
    "discounts":{"12-02-2012":"34.810000","12-03-2012":"20.810000","12-04-2012":"27.040000"},
    "gross":{"12-02-2012":"56.730000","12-03-2012":"19.350000","12-04-2012":"66.390000"},
    "net":{"12-02-2012":"61.920000","12-03-2012":"98.540000","12-04-2012":"39.350000"},
    "discounts_total":82.66,
    "gross_total":82.47,
    "net_total":99.81,
    "number":10001
    },
"10002":{
    "unitname":"Dallast",
    "discounts":{"12-02-2012":"12.600000","12-03-2012":"25.780000","12-04-2012":"47.780000","12-05-2012":"45.210000"},
    "gross":{"12-02-2012":"29.370000","12-03-2012":"91.110000","12-04-2012":"60.890000","12-05-2012":"51.870000"},
    "net":{"12-02-2012":"16.770000","12-03-2012":"65.330000","12-04-2012":"13.110000","12-05-2012":"06.660000"},
    "discounts_total":131.37,
    "gross_total":33.24,
    "net_total":101.87,
    "number":10002
    },
"32402":{
    "unitname":"Austin",
    "discounts":{"12-05-2012":"52.890000","12-02-2012":"22.430000","12-03-2012":"58.420000","12-04-2012":"53.130000"},
    "gross":{"12-05-2012":"25.020000","12-02-2012":"2836.010000","12-03-2012":"54.740000","12-04-2012":"45.330000"},
    "net":{"12-04-2012":"92.200000","12-05-2012":"72.130000","12-02-2012":"13.580000","12-03-2012":"96.320000"},
    "discounts_total":186.87,
    "gross_total":161.1,
    "net_total":174.23,
    "number":32402
    }
}
Run Code Online (Sandbox Code Playgroud)

我用一个标准的每个调用来检查函数并用highcharts做一些很棒的东西,但现在我试图通过net_total调用对响应进行排序,我无法弄明白.

我尝试了.sort()它错误,它不是一个功能.我已经阅读了一段时间,但我猜我找不到合适的结果.这看起来很有希望:对一组JavaScript对象进行排序,但它失败了,.sort而不是一个函数.似乎大多数.sort都在[]数组上而不是完整的对象..

任何帮助将不胜感激.

javascript sorting jquery object multidimensional-array

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

按键值递归对 JavaScript 对象进行排序

按其值也是对象的键对对象进行排序,并对内部对象进行排序,即递归地对对象进行排序。排序应该按照键进行。

我研究了 Stackoverflow 的其他问题,但没有一个是针对对象递归排序的

我调查的问题:

按属性值对 JavaScript 对象进行排序

例子:

input = {
    "Memo": {
        "itemAmount1": "5",
        "taxName1": "TAX",
        "productPrice1": "10",
        "accountName1": "Account Receivable (Debtors)"
    },
    "Footer": {
        "productDescription2": "Maggie",
        "itemQuantity2": "49.5",
        "accountName2": "Account Receivable (Debtors)",
        "taxName2": "TAX"
    },
    "Header": {
        "itemDiscount3": "10",
        "accountName3": "Account Receivable (Debtors)",
        "productPrice3": "10",
        "taxName3": "TAX"
    }
}
Run Code Online (Sandbox Code Playgroud)

输出

output = {
    "Footer": {
        "accountName2": "Account Receivable (Debtors)",
        "itemQuantity2": "49.5",
        "productDescription2": "Maggie",
        "taxName2": "TAX"
    },
    "Header": {
        "accountName3": "Account Receivable (Debtors)",
        "itemDiscount3": …
Run Code Online (Sandbox Code Playgroud)

javascript sorting recursion node.js

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

node.js无法运行Object.keys

var list = {"you": 100, "me": 75, "foo": 116, "bar": 15};
keysSorted = Object.keys(list).sort(function(a,b){return list[a]-list[b]})
alert(keysSorted);     // bar,me,you,foo
Run Code Online (Sandbox Code Playgroud)

按属性值排序JavaScript对象

我在做对象排序.以上源代码在Javascript中工作.但是没有在Node.js中工作.我有这样的错误.

keysSorted = Object.keys(list).sort(function(a,b){return list[a]-list[b]})
                    ^
TypeError: Object.keys is not a function
Run Code Online (Sandbox Code Playgroud)

我不知道为什么.请帮我.

javascript sorting node.js

6
推荐指数
1
解决办法
3125
查看次数