我有这个数字范围:
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保证对象属性顺序?
我想知道如何在特定位置插入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之间0和1(例如)它应该像:
data = {
0: 'lorem',
6: 'adipiscing',
1: 'dolor sit',
2: 'consectetuer'
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点? 有没有任何jQuery解决方案?
给定一个对象定义:
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 中有如下内容:
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)
维持秩序。所以看起来像一个纯粹的数字键被颠倒了,但一个包含非数字字符的键不是。有谁知道为什么?
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
我从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是否保证即使将新值分配给键,也会保留对象的键序列?
例如,如果我有以下对象
var Object = {
keyX: value1,
keyB: value2,
keyZ: value3
}
Run Code Online (Sandbox Code Playgroud)
如果我使用密钥迭代for .. in,我得到正确的序列即keyX, keyB, keyZ.如果我改变了值keyB,我仍然在迭代中获得相同的序列.
我的问题是,序列是否始终保持不变,或者在任何情况下都可能发生变化?
在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)
第一个是常见的,但如果我感到懒惰,我想使用第二个或第三个.
但我想知道它们之间是否有任何区别,我应该选择哪种情况?
我div's用 HTML 创建了5 个,我想将它们全部添加到div我用 JavaScript 创建的包装器中。我想从5循环div's通过一个for-in循环,然后追加div为一体的一个孩子wrapper。
出于某种原因,for循环更改了 5 个div's顺序,并且不会将所有顺序都附加到wrapper. 如何使用 JavaScript将所有内容添加div's到wrapper,保持(HTML)顺序?
(请不要发布 JQuery 答案,因为这不是问题。我只想要 JavaScript 答案。)
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)我需要一个真正的迭代器,它将像这样工作:
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 ×10
json ×3
object ×2
for-loop ×1
iteration ×1
iterator ×1
jquery ×1
loops ×1
properties ×1
sorting ×1