我有一些像这样的结构化JSON数据.让我们假设这是可以互换的,通过JSON.parse():
[
{
"title": "pineapple",
"uid": "ab982d34c98f"
},
{
"title": "carrots",
"uid": "6f12e6ba45ec"
}
]
Run Code Online (Sandbox Code Playgroud)
我需要它看起来像这样,重新映射title到name,并uid以id与结果:
[
{
"name": "pineapple",
"id": "ab982d34c98f"
},
{
"name": "carrots",
"id": "6f12e6ba45ec"
}
]
Run Code Online (Sandbox Code Playgroud)
最明显的做法是这样的:
str = '[{"title": "pineapple","uid": "ab982d34c98f"},{"title": "carrots", "uid": "6f12e6ba45ec"}]';
var arr = JSON.parse(str);
for (var i = 0; i<arr.length; i++) {
arr[i].name = arr[i].title;
arr[i].id = arr[i].uid;
delete arr[i].title;
delete arr[i].uid;
}
Run Code Online (Sandbox Code Playgroud)
str = '[{"title": "pineapple","uid": "ab982d34c98f"},{"title": "carrots", "uid": "6f12e6ba45ec"}]'; …Run Code Online (Sandbox Code Playgroud)如果我有这样的对象
var object = function(key,text)
{
this.key = key;
this.text = text;
}
Run Code Online (Sandbox Code Playgroud)
并创建这些对象的数组
var objArray = [];
objArray[0] = new object('key1','blank');
objArray[1] = new object('key2','exampletext');
objArray[2] = new object('key3','moretext');
Run Code Online (Sandbox Code Playgroud)
有没有办法我只能检索数组中所有对象的一个属性?例如:
var keyArray = objArray["key"];
Run Code Online (Sandbox Code Playgroud)
上面的例子没有将set keyArray返回给任何东西,但我希望它会被设置为这样的东西:
keyArray = [
'key1',
'key2',
'key3']
Run Code Online (Sandbox Code Playgroud)
有没有人知道如何在不迭代objArray并手动将每个键属性复制到键数组的情况下执行此操作?
我想使用Javascript/Node JS创建一个静态类.我使用谷歌,但我找不到任何有用的例子.
我想在Javascript ES6中创建这样的东西(C#):
public static MyStaticClass {
public static void someMethod() {
//do stuff here
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我有这个类,但我认为这个代码每次从"require"调用时都会创建一个新实例.
function MyStaticClass() {
let someMethod = () => {
//do some stuff
}
}
var myInstance = new MyStaticClass();
module.exports = factory;
Run Code Online (Sandbox Code Playgroud) 如何使用表单的字段和值创建对象?
像这个:
{
fields:
{
name: 'foo',
email: 'foo@moo.com',
comment: 'wqeqwtwqtqwtqwet'
}
}
Run Code Online (Sandbox Code Playgroud)
假设表单看起来像这样:
<form>
<input type="text" name="name" value="foo" />
<input type="text" name="email" value="foo@moo.com" />
<textarea name="comment">wqeqwtwqtqwtqwet</textarea>
</form>
Run Code Online (Sandbox Code Playgroud)
我需要知道如何为任何具有单一功能的表单执行此操作,而不仅仅是特定的表单.
使用Underscore.js,我试图多次对项目列表进行分组,即
然后由SIZE分组为每个SIZE,按类别分组......
http://jsfiddle.net/rickysullivan/WTtXP/1/
理想情况下,我希望有一个函数或扩展,_.groupBy()以便您可以使用参数对其进行分组.
var multiGroup = ['size', 'category'];
Run Code Online (Sandbox Code Playgroud)
可能只是混合...
_.mixin({
groupByMulti: function(obj, val, arr) {
var result = {};
var iterator = typeof val == 'function' ? val : function(obj) {
return obj[val];
};
_.each(arr, function(arrvalue, arrIndex) {
_.each(obj, function(value, objIndex) {
var key = iterator(value, objIndex);
var arrresults = obj[objIndex][arrvalue];
if (_.has(value, arrvalue))
(result[arrIndex] || (result[arrIndex] = [])).push(value);
Run Code Online (Sandbox Code Playgroud)
我的头很痛,但我觉得还有更多需要去的地方......
});
})
return result;
}
});
properties = _.groupByMulti(properties, function(item) {
var testVal = item["size"];
if (parseFloat(testVal)) …Run Code Online (Sandbox Code Playgroud) 我想知道为什么规范定义Object.keys而不是Object.prototype.keys?如果API一致,肯定会好得多,我想理解为什么不是这样.
还有其他方法Object.prototype,为什么不是这样呢?
我是JavaScript编程的新手,我有两个具有以下结构的对象数组:
myFirstObjArray = [{foo: 1, bar: 1}, {foo: 3, bar: 3}, {foo: 4, bar: 5}];
mySecondObjArray = [{foo: 2}, {foo: 4}, {foo: 5}];
Run Code Online (Sandbox Code Playgroud)
我需要获得两个包含key值的独立数组foo,第一个包含第一个数组但不在第二个数组中的数组,基于key的值,foo第二个包含mySecondObjArray但不在myFirstObjArray.
有没有办法做到这一点没有
for(i=0;i<myFirstObjArray.length;i++)
for(j=0;j<mySecondObjArray .length;j++)
{...build first array here}
for(i=0;i<mySecondObjArray .length;i++)
for(j=0;j<myFirstObjArray.length;j++)
{...build second array here}
Run Code Online (Sandbox Code Playgroud)
?也许我的问题是一个我没找到的重复问题,所以请保持温和.
预期产量:
firstArray = [{foo: 1}, {foo: 3}];
secondArray = [{foo: 2}, {foo: 5}];
Run Code Online (Sandbox Code Playgroud) 我MyClass在用户脚本中定义以下及其方法:
function MyClass() {
this.myCallback = function() {
alert("MyClass.myCallback()");
};
this.startRequest = function() {
GM_xmlhttpRequest({
'method': 'GET',
'url': "http://www.google.com/",
'onload': function (xhr) {
myClassInstance.myCallback();
}
});
};
}
var myClassInstance = new MyClass();
myClassInstance.startRequest();
Run Code Online (Sandbox Code Playgroud)
此脚本有效,GM_xmlhttpRequest完成后将myCallback()调用该方法.
但是,它只能起作用,因为onload回调是指全局变量myClassInstance.如果我将onload回调更新为:
'onload': function (xhr) {
this.myCallback();
}
Run Code Online (Sandbox Code Playgroud)
然后我得到(Chrome)错误:
未捕获的TypeError:Object [object DOMWindow]没有方法'myCallback'.
似乎this正在错误的背景下进行评估.
有没有办法调用myCallback()方法myClassInstance而不必求助于使用全局变量?
我有一个我正在使用的数组,我很难描述它是什么类型的数组,这使我很难使用它.到目前为止它对我有用.我只是好奇.
我最终想要删除这个数组的结尾.
我试着.pop()和 .grep().它不起作用.
这是我的代码示例.
var options = {};
$('.option:visible').each(function(){
var option_label = "";
var option_selected = [];
var option_img = "";
...
options[option_label] = {
option_selected: option_selected,
option_image : option_img
};
});
Run Code Online (Sandbox Code Playgroud)
我想要做的是:
if(option_label.indexOf("something") != -1) {
//then pop off options
}
//continue about your business
Run Code Online (Sandbox Code Playgroud)
为了澄清,我不知道确切的标题option_label.
数据:
var data = [
{
"id": 1,
"level": "1",
"text": "Sammy",
"type": "Item",
"items": [
{
"id": 11,
"level": "2",
"text": "Table",
"type": "Item",
"items": [
{
"id": 111,
"level": "3",
"text": "Dog",
"type": "Item",
"items": null
},
{
"id": 112,
"level": "3",
"text": "Cat",
"type": "Item",
"items": null
}
]
},
{
"id": 12,
"level": "2",
"text": "Chair",
"type": "Item",
"items": [
{
"id": 121,
"level": "3",
"text": "Dog",
"type": "Item",
"items": null
},
{
"id": 122, …Run Code Online (Sandbox Code Playgroud)