储存商品的最佳方法是什么 key=>value
在javascript中数组,如何循环遍历?
每个元素的键应为标记,例如{id}
或id
,值应为id的数值。
它应该是现有javascript类的元素,或者是可以通过该类轻松引用的全局变量。
可以使用jQuery。
Array.prototype.forEach
储存商品的最佳方法是什么 key=>value
在javascript中数组,如何循环遍历?
每个元素的键应为标记,例如{id}
或id
,值应为id的数值。
它应该是现有javascript类的元素,或者是可以通过该类轻松引用的全局变量。
可以使用jQuery。
Array.prototype.forEach
Answers:
这就是一个JavaScript对象:
var myArray = {id1: 100, id2: 200, "tag with spaces": 300};
myArray.id3 = 400;
myArray["id4"] = 500;
您可以使用for..in
loop遍历它:
for (var key in myArray) {
console.log("key " + key + " has value " + myArray[key]);
}
另请参阅:处理对象(MDN)。
在ECMAScript6中,还有Map
(请参阅此处的浏览器兼容性表):
对象具有原型,因此地图中包含默认键。自ES5开始,可以通过使用map = Object.create(null)来绕过此方法,但很少这样做。
对象的键是字符串和符号,其中键可以是Map的任何值。
您可以轻松获取地图的大小,而不必手动跟踪对象的大小。
var foo = Object.create(null)
,然后再向其添加属性是更安全的foo.bar = "baz"
。创建与的对象{}
等效于Object.create(Object.prototype)
,这意味着它继承的所有属性Object
。通常这不是问题,但是如果某些库修改了global,则可能导致对象具有意外的键Object.prototype
。
您可以使用Map。
- JavaScript ES6中引入了新的数据结构。
- JavaScript对象的替代方案,用于存储键/值对。
- 具有用于键/值对迭代的有用方法。
var map = new Map();
map.set('name', 'John');
map.set('id', 11);
// Get the full content of the Map
console.log(map); // Map { 'name' => 'John', 'id' => 11 }
使用键获取地图的价值
console.log(map.get('name')); // John
console.log(map.get('id')); // 11
获取地图的大小
console.log(map.size); // 2
验证码存在于地图中
console.log(map.has('name')); // true
console.log(map.has('age')); // false
取得金钥
console.log(map.keys()); // MapIterator { 'name', 'id' }
获取价值
console.log(map.values()); // MapIterator { 'John', 11 }
获取地图元素
for (let element of map) {
console.log(element);
}
// Output:
// [ 'name', 'John' ]
// [ 'id', 11 ]
打印键值对
for (let [key, value] of map) {
console.log(key + " - " + value);
}
// Output:
// name - John
// id - 11
仅打印地图键
for (let key of map.keys()) {
console.log(key);
}
// Output:
// name
// id
仅打印地图的值
for (let value of map.values()) {
console.log(value);
}
// Output:
// John
// 11
JSON.stringify()
。
在javascript中,键值数组存储为对象。在javascript中有诸如数组之类的东西,但是它们在某种程度上仍被认为是对象,请检查这个人的答案- 为什么我可以像在对象中一样将命名属性添加到数组中?
尽管可以使用方括号语法访问和设置对象属性,但是通常使用方括号语法看到对象,使用大括号语法查看对象(“ key => value”数组),如Alexey Romanov所示。
javascript中的数组通常仅与数字,自动递增键一起使用,但是javascript对象可以包含命名键值对,函数甚至其他对象。
简单数组例如
$(document).ready(function(){
var countries = ['Canada','Us','France','Italy'];
console.log('I am from '+countries[0]);
$.each(countries, function(key, value) {
console.log(key, value);
});
});
输出-
0“加拿大”
1个“我们”
2“法国”
3“意大利”
我们在上面看到,我们可以使用jQuery.each函数循环数字数组,并使用带数字键的方括号在循环外部访问信息。
简单对象(json)
$(document).ready(function(){
var person = {
name: "James",
occupation: "programmer",
height: {
feet: 6,
inches: 1
},
}
console.log("My name is "+person.name+" and I am a "+person.height.feet+" ft "+person.height.inches+" "+person.occupation);
$.each(person, function(key, value) {
console.log(key, value);
});
});
输出-
我叫James,我是6英尺1高的程序员
名字詹姆斯
职业程序员
高度对象{英尺:6,英寸:1}
在像php这样的语言中,这将被视为具有键值对的多维数组或数组中的数组。我假设是因为您询问有关如何遍历键值数组的问题,所以您想知道如何获得一个对象(键=>值数组),例如上面的person对象,拥有一个以上的对象。
好吧,既然我们知道javascript数组通常用于数字索引,而对象则更灵活地用于关联索引,我们将一起使用它们来创建可以循环通过的对象数组,如下所示-
JSON数组(对象数组)-
$(document).ready(function(){
var people = [
{
name: "James",
occupation: "programmer",
height: {
feet: 6,
inches: 1
}
}, {
name: "Peter",
occupation: "designer",
height: {
feet: 4,
inches: 10
}
}, {
name: "Joshua",
occupation: "CEO",
height: {
feet: 5,
inches: 11
}
}
];
console.log("My name is "+people[2].name+" and I am a "+people[2].height.feet+" ft "+people[2].height.inches+" "+people[2].occupation+"\n");
$.each(people, function(key, person) {
console.log("My name is "+person.name+" and I am a "+person.height.feet+" ft "+person.height.inches+" "+person.occupation+"\n");
});
});
输出-
我的名字叫约书亚(Joshua),我是5英尺11高的首席执行官
我叫James,我是6英尺1高的程序员
我叫Peter,我是4英尺10高的设计师
我的名字叫约书亚(Joshua),我是5英尺11高的首席执行官
请注意,在循环外部,我必须对数字键使用方括号语法,因为现在这是对象的数字索引数组,当然,在循环内部也暗指数字键。
我知道它来晚了,但对那些想要其他方法的人可能会有所帮助。可以存储数组key => values的另一种方法是使用称为map()的数组方法。(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)您也可以使用箭头功能
var countries = ['Canada','Us','France','Italy'];
// Arrow Function
countries.map((value, key) => key+ ' : ' + value );
// Anonomous Function
countries.map(function(value, key){
return key + " : " + value;
});
今天,我们发布了名为laravel-blade-javascript的新软件包。它为您提供了一个JavaScript Blade指令,可将PHP变量导出到JavaScript。因此,它基本上与Jeffrey Way流行的PHP-Vars-To-Js-Transformer包相同,但是它没有在控制器中导出变量,而是由它提供了视图。
这是一个如何使用它的示例:
@javascript('key', 'value')
渲染的视图将输出:
<script type="text/javascript">window['key'] = 'value';</script>
因此,您现在可以在浏览器中访问键变量:
console.log(key); //outputs "value"
您还可以使用一个参数:
@javascript(['key' => 'value'])
输出结果将与第一个示例相同。
您还可以使用配置文件来设置所有导出的JavaScript变量都应驻留在其中的命名空间。