相关疑难解决方法(0)

如何创建一个确定2个数字之间的值的函数

我有这个数字范围:

0  -------> 25 ------->  80 ------> 150
    small      medium       large
Run Code Online (Sandbox Code Playgroud)

我想收到0到150之间的数字,并显示它是小,中还是大.30和45是中等的,因为它们在25到80之间,而5是小的,因为它低于25.

我想创建一个为此对象执行此匹配的函数:

var sizeMap = { small : 25, medium : 80, large : 150 }
Run Code Online (Sandbox Code Playgroud)

(假设0是最低的数字).

该函数应如下所示:

function returnSize(number) {
    for (item in sizeMap)
       ???????
    return size
}
Run Code Online (Sandbox Code Playgroud)

如何编写此函数,以便可以灵活地添加新类别(例如:'extra large':250).我应该将对象呈现为数组吗?

javascript object

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

在特定位置的JSON对象中插入属性

可能重复:
JavaScript保证对象属性顺序?

我想知道如何在特定位置插入JSON对象属性?让我们假设这个Javascript对象:

var data = {
  0: 'lorem',
  1: 'dolor sit',
  2: 'consectetuer'
}
Run Code Online (Sandbox Code Playgroud)

我有一个ID和一个字符串,如:

var id = 6;
var str = 'adipiscing';
Run Code Online (Sandbox Code Playgroud)

现在,我想插入id之间01(例如)它应该像:

data = {
  0: 'lorem',
  6: 'adipiscing',
  1: 'dolor sit',
  2: 'consectetuer'
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点? 有没有任何jQuery解决方案?

javascript jquery json

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

JavaScript和/或JSON是否要求解析器按定义顺序枚举属性?

给定一个对象定义:

var o = {x :1, y:2, z: 3, b: 4, a: 5, m: 6, X: 7};
Run Code Online (Sandbox Code Playgroud)

在枚举时,Chrome 似乎遵循定义属性的顺序:

for (var i in o) { console.log(i, o[i]); }
Run Code Online (Sandbox Code Playgroud)

产量:

x 1
y 2
z 3
b 4
a 5
m 6
X 7
Run Code Online (Sandbox Code Playgroud)

JavaScript和/或JSON是否指定了此级别的订单保留?

在任何一种情况下,它都可靠吗?

javascript json

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

为什么javascript中的数字键总是排序到开头?

因此,假设我在 javascript 中有如下内容:

object = {"one": 1, "two": 2, "three": 3, "123": 123};
Run Code Online (Sandbox Code Playgroud)

当我遍历这个时,结果是“123”成员跳到了列表的最前面,而其他人的顺序保持不变。如果我做类似以下的事情,

object = {"one": 1, "two": 2, "three": 3, "123 STRING": 123};
Run Code Online (Sandbox Code Playgroud)

维持秩序。所以看起来像一个纯粹的数字键被颠倒了,但一个包含非数字字符的键不是。有谁知道为什么?

javascript sorting properties object

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

IE9关联数组

Fruit={4:"apple",2:"banana",3:"graps"}; 
var k;
for(k in Fruit)
{alert(k);}
Run Code Online (Sandbox Code Playgroud)

2 3 4 当在IE8和FF以及其他浏览中4 2 3帮助我时,Ie9中将会依次发出警报 .我需要序列是 4 2 3

javascript internet-explorer-9

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

解析对象后,保持对象在JSON字符串中的顺序

我从API函数收到以下JSON字符串。

"Inbound": {
    "callRelatedFields": ["ANI",
    "DNIS"],
    "objects": {
        "Contact": [{
            "displayName": "Name",
            "apiName": "Name"
        },
        {
            "displayName": "Email",
            "apiName": "Email"
        }],
        "Account": [{
            "displayName": "Account Name",
            "apiName": "Name"
        },
        {
            "displayName": "Phone",
            "apiName": "Phone"
        },
        {
            "displayName": "Fax",
            "apiName": "Fax"
        }],
        "cnx__Phone__c": [{
            "displayName": "Phone Name",
            "apiName": "Name"
        },
        {
            "displayName": "Phone Number Line 1",
            "apiName": "cnx__Phone_Number_Line_1__c"
        },
        {
            "displayName": "Phone Number Line 2",
            "apiName": "cnx__Phone_Number_Line_2__c"
        },
        {
            "displayName": "Type",
            "apiName": "cnx__Type__c"
        },
        {
            "displayName": "Location",
            "apiName": "cnx__Location__c"
        },
        { …
Run Code Online (Sandbox Code Playgroud)

javascript json

4
推荐指数
3
解决办法
9195
查看次数

JS对象键序列

javascript是否保证即使将新值分配给键,也会保留对象的键序列?

例如,如果我有以下对象

var Object = {
    keyX: value1,
    keyB: value2,
    keyZ: value3
}
Run Code Online (Sandbox Code Playgroud)

如果我使用密钥迭代for .. in,我得到正确的序列即keyX, keyB, keyZ.如果我改变了值keyB,我仍然在迭代中获得相同的序列.

我的问题是,序列是否始终保持不变,或者在任何情况下都可能发生变化?

javascript

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

for for var index in vs. forEach

在javascript中,如果我想循环遍历数组中的每个元素,我有几种方法可以做到这一点:

1.

for(var i =0; i<array.length; i++){}
Run Code Online (Sandbox Code Playgroud)

2.

array.forEach(function(item, index){});
Run Code Online (Sandbox Code Playgroud)

3.

for (var index in array){}
Run Code Online (Sandbox Code Playgroud)

第一个是常见的,但如果我感到懒惰,我想使用第二个或第三个.

但我想知道它们之间是否有任何区别,我应该选择哪种情况?

javascript iteration iterator loops for-loop

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

向dom添加元素数组

div's用 HTML 创建了5 个,我想将它们全部添加到div我用 JavaScript 创建的包装器中。我想从5循环div's通过一个for-in循环,然后追加div为一体的一个孩子wrapper

出于某种原因,for循环更改了 5 个div's顺序,并且不会将所有顺序都附加到wrapper. 如何使用 JavaScript将所有内容添加div'swrapper,保持(HTML)顺序?

(请不要发布 JQuery 答案,因为这不是问题。我想要 JavaScript 答案。)

JSFiddle

var wrapper = document.createElement('div'),
  myClass = document.getElementsByClassName('myClass');

myClass[0].parentElement.appendChild(wrapper);
wrapper.id = 'wrapper';

for (var key in myClass) {
  if (!myClass.hasOwnProperty(key)) continue;

  wrapper.appendChild(myClass[key]);
}
Run Code Online (Sandbox Code Playgroud)
#wrapper {
  border: 2px solid green;
  color: brown;
}
Run Code Online (Sandbox Code Playgroud)
<div class="myClass">First</div>
<div class="myClass">Second</div>
<div class="myClass">Third</div>
<div class="myClass">Fourth</div> …
Run Code Online (Sandbox Code Playgroud)

javascript

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

在JavaScript中实现对象属性的yield迭代器

我需要一个真正的迭代器,它将像这样工作:

var haystackObj = {
        'needle': 'abc',
        'prop2': {
                'prop1': 'def',
                'prop2': {
                        'needle': 'ghi',
                },
                'needle': 'jkl',
        },
};
var needleKey = 'needle';
var iterator = {
    next: function () {
            /* 
             * WHAT CODE GOES HERE? 
             * 
             * Should return the next property, recursively, with the name 
             * equal to needleKey, of haystackObj.
             *
             */
    }
};

var value = iterator.next();
console.log(value); // -> 'abc'
value = iterator.next();
console.log(value); // -> 'ghi'
value = iterator.next();
console.log(value); …
Run Code Online (Sandbox Code Playgroud)

javascript continuations

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